正则表达式:带有重复字符

Regex: with repeated characters

我正在尝试捕捉一个单词中每两个重复的字符。我试过这个:

(\w)+

但出于某种原因,它只捕捉到前两对。例如:单词 "hellokitty",它会捕获 "ll" 并忽略另一个 "tt",如在 regex101

中测试的那样

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

/(\w)/g

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

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

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

Javascript

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

示例:

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

Python

re.compile(pattern, flags=0)

但是 python 没有 global 标志。要查找所有事件,请使用:

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

这 returns 一组火柴。

g 标志将使您的正则表达式 global 或重复。

/(\w)+/g

Demo


如果你想让它避免重复三次,你可以删除 +:

/(\w)/g

Demo