【发布时间】:2009-12-16 07:15:51
【问题描述】:
我正在测试一个字符串是否包含至少 n 个连续顺序的字符:
我有这个正则表达式,但它似乎不起作用
(\w\1){3,}
【问题讨论】:
我正在测试一个字符串是否包含至少 n 个连续顺序的字符:
我有这个正则表达式,但它似乎不起作用
(\w\1){3,}
【问题讨论】:
(\w)\1{3,} 这确保你有一个字符至少重复四次。
(\w\1) 的问题在于反向引用 \1 在捕获组本身内。 \1 指的是与第一个括号 () 组匹配的字符。
如果要捕获整个匹配的字符串,请将正则表达式括在另一个括号组中。
((\w)\2{3,})
注意这里的反向引用索引是\2,因为\1指的是外括号。
查看示例:
Regex : ((\w)\2{3,})
TestString : bbaaaaaacc
Match : aaaaaa
$1 : aaaaaa
$2 : a
【讨论】:
您是在寻找 n 个相同的字符还是仅仅 n 个字符?
(\w)\1{2,} 找到一个字符,然后再找到两个相同的字符。因此,如果您在字符串中有 3 个或更多相同的字符连续顺序,它将匹配。
(\w){3,} 将匹配 3 个或更多字符。
【讨论】: