Regex 如何使用正则表达式查找字符串中出现的相同后续字符?

Regex 如何使用正则表达式查找字符串中出现的相同后续字符?,regex,Regex,如何使用正则表达式或函数在字符串中查找相同的后续字符 例如: 我是我​ee​我和t有一个thr​ee​ 圆周率​zz​作为。那个​oo​b这里只有一个圆周率​zz​A.P​oo​小男孩 您可以使用: 如果要查找长度为两个或更多的序列,请将\1更改为\1+ 请注意,根据您使用的正则表达式引擎,语法可能会有所不同。在perl风格中就是这样\w匹配一个单词字符,\2匹配第二个括号 m/((\w)\2+)/g 不确定您使用的是哪个版本的正则表达式,但对于egrep,它可以工作: egrep '(.)\

如何使用正则表达式或函数在字符串中查找相同的后续字符

例如:

我是我​ee​我和t有一个thr​ee​ 圆周率​zz​作为。那个​oo​b这里只有一个圆周率​zz​A.P​oo​小男孩

您可以使用:

如果要查找长度为两个或更多的序列,请将
\1
更改为
\1+


请注意,根据您使用的正则表达式引擎,语法可能会有所不同。

在perl风格中就是这样
\w
匹配一个单词字符,
\2
匹配第二个括号

m/((\w)\2+)/g

不确定您使用的是哪个版本的正则表达式,但对于
egrep
,它可以工作:

egrep '(.)\1' < file
egrep'()\1'
这将显示一行中有两个字符的所有行。如果您只想要字母:

egrep `([A-Za-z])\1' < file
egrep`([A-Za-z])\1'

会有用的。

用谷歌搜索它:“双字符正则表达式”


我用你的正则表达式做了一个修改:

这应该可以
()\1+

为什么需要第一个捕获组?@sln:我使用它获取所有连续字母作为第一个组(
$1
\1
)。我本来可以避免的。嗯,Perlish
$&
可能会减慢速度;如果在一段时间内使用(m/(())/g),可能会更好,但是@ary=m/(())/g可能会存储额外的数据。
egrep `([A-Za-z])\1' < file