正则表达式匹配一个以上的字符

时间:2010-08-28 21:11:27

标签: java regex

如果字符串中出现多个字符,我需要帮助提供正则表达式来匹配。我已经验证了两个字符串的长度,它们总是相等的。举例说明我的意思。字符串“aab”和“abb”。这两个应该匹配正则表达式,因为它们有重复的字符,第一个字符串中的“aa”和第二个字符串中的“bb”。

3 个答案:

答案 0 :(得分:10)

既然你说“aba”式的重复不计算在内,那么反向引用应该很简单:

(.)\1+

会找到字符序列。试试吧:

java.util.regex.Pattern.compile("(.)\\1+").matcher("b").find(); // false
java.util.regex.Pattern.compile("(.)\\1+").matcher("bbb").find(); // true

答案 1 :(得分:2)

如果您正在检查字谜,可能会有更好的算法。

如果您对字符串(原始字符串和候选字符串)进行排序,则可以使用字符串比较来检查字谜。

答案 2 :(得分:0)

static final String REGEX_MORE_THAN_ONE_OCCURANCE_OF_B = "([b])\\1{1,}";
static final String REGEX_MORE_THAN_ONE_OCCURANCE_OF_B_AS_PREFIX_TO_A = "(b)\\1+([a])";