【发布时间】:2015-06-07 15:15:39
【问题描述】:
我试图捕捉一个单词中每两个重复的字符。我试过这个:
(\w)\1+
但由于某种原因,它只捕获前两对。例如:单词“hellokitty”,它捕获了“ll”并忽略了另一个“tt”,正如regex101 中测试的那样
【问题讨论】:
-
请注意,您的表达式不是“捕获每两个重复字符”——它捕获尽可能多的个重复字符。例如,在
w000t中,它匹配000。要匹配 any 两个重复字符,请使用(\w)\1。要匹配仅两个字符,您需要(\w)\1(?!\1)(实际上是(\w)(?<!\1\1)\1(?!\1),但看起来您是不允许的:“子模式引用不允许在断言后面查看” - 请参阅stackoverflow.com/questions/30678150/…为此)。 -
非常感谢我没注意到