我需要进行如下的大学练习:使用正则表达式验证任何包含两个'a'字符和两个'b'字符或更多字符的单词。我在Pattern
类做了如下的表达式:模式Java - 正则表达式
Pattern pattern = Pattern.compile("a{2}b{2,}");
该图案仅验证带有两个“a”字符开始,然后两个或两个以上“B”字符的表达式。但是这个练习要求两个角色a可以在句子中的任何地方,而不一定在开头,以及'b'字符。如何做到这一点的正则表达式
我需要进行如下的大学练习:使用正则表达式验证任何包含两个'a'字符和两个'b'字符或更多字符的单词。我在Pattern
类做了如下的表达式:模式Java - 正则表达式
Pattern pattern = Pattern.compile("a{2}b{2,}");
该图案仅验证带有两个“a”字符开始,然后两个或两个以上“B”字符的表达式。但是这个练习要求两个角色a可以在句子中的任何地方,而不一定在开头,以及'b'字符。如何做到这一点的正则表达式
从Pattern
你得到一个Matcher
,它有两个方法:
public boolean matches()
尝试对图案的整个区域相匹配。
public boolean find()
试图找到该模式匹配的输入序列的下一个子。
该方法从匹配器区域的开始处开始,或者如果先前方法的调用成功并且匹配器尚未被重置,则在与先前匹配不匹配的第一个字符处开始。
您可以使用您的原有格局,只是叫find
而不是matches
:
Pattern pattern = Pattern.compile("a{2}b{2,}");
Matcher matcher = pattern.matcher(myStringToBeSearchedForPattern);
if (matcher.find()) {
System.out.println("Found!");
}
然而,根据要求,你必须修改你的格局。从你的描述,目前尚不清楚确切的要求是什么(可a{2}
和b{2,}
按任意顺序排列?是否还有其他字符,那么a
和b
?)
你能举几个例子:预计比赛吗? –
不明确的要求。你只有a和b的字符;或者还有什么是允许的? – GhostCat
是否允许使用多个正则表达式?然后,你可以分开你的表情,它应该工作。 – Izruo