正则表达式:重复的字符

时间:2015-06-07 15:15:40

标签: regex character

我试图抓住一个单词中每两个重复的字符。我试过这个:

(\w)\1+

但由于某种原因,它只捕获前两对。例如:" hellokitty",它捕获" ll"而忽略了另一个" tt"在regex101

中测试过

3 个答案:

答案 0 :(得分:1)

您需要使用修饰符g进行全局匹配:

/(\w)\1/g

https://regex101.com/r/nW7vS1/1

答案 1 :(得分:1)

如果要多次重复正则表达式,则必须使用global标志。在Regex101上,只需将g放在正则表达式旁边的框中。

如何在代码中使用它取决于您使用的语言。

的Javascript

/pattern/flags
new RegExp(pattern[, flags])

示例:

regex = /(\w)\1+/g;
regex = new RegExp("(\w)\1+", "g");

的Python

re.compile(pattern, flags=0)

但是 python没有global标志。要查找所有出现的情况,请使用:

re.compile("(\w)\1+")
re.findall("Hellokitty")

这将返回一系列匹配。

答案 2 :(得分:0)

g标记会使您的正则表达式 global 或重复。

/(\w)\1+/g

Demo

如果您希望它阻止它重复三次重复,您可以删除+

/(\w)\1/g

Demo