21

接受以下输入:

foo.foo aefhiuafhiauefheiauh bar.bar jgoeiajgoieajogiae baz.foo ogiejaogijaeoigjea

假设我想匹配x.xx 在点的两侧相同的位置。所以我不想匹配x.y。因此,使用示例输入,我会得到foo.foobar.bar而不是baz.foo

我想做的是

(\w+)\.$1

但这当然行不通。

这可能以任何理智的方式使用正则表达式,还是我应该匹配x.y和处理代码中的x比较y

为了这个问题,假设我使用的是 Javascript 正则表达式引擎。

4

3 回答 3

37

试试这个:

/(\w+)\.\1/g

这使用\1 反向引用来匹配第一个捕获组的文本(\w+)

在http://regexpal.com/上测试并有效。

于 2013-02-13T15:11:04.297 回答
6

应该是全球的!

/(\w+)\.\1/g;
于 2013-02-13T15:15:09.013 回答
0

我正在为使用 Visual Studio 2017 的人们提供对已接受答案的改编,以查找在同一行中重复的相同变量名称。

我使用的搜索是:

(\w+) = \1 [&]

我正在搜索 VB 字符串连接,我想考虑用 stringbuilder 或简化的 &= 运算符替换它们,所以我想替换:

MyString = MyString & something

MyString &= something

该表达式适用于 find all 所以我能够找到所有实例

于 2019-06-20T10:49:57.540 回答