用正则表达式将相同的单词匹配两次,而不是关心单词是什么

时间:2013-02-13 15:06:23

标签: javascript regex

采取以下输入:

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

假设我想匹配x.x,其中x与点的两侧相同。所以我不想匹配x.y。因此,通过示例输入,我得到foo.foobar.bar而不是baz.foo

我想做的是像

(\w+)\.$1

但当然这不起作用。

这是否可以通过正则表达式以任何合理的方式实现,还是应该匹配x.y并处理代码中xy的比较?

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

3 个答案:

答案 0 :(得分:19)

试试这个:

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

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

编辑:添加全局修饰符,如TomTom正确建议。

答案 1 :(得分:5)

应该是全球性的!

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

答案 2 :(得分:0)

我正在为使用Visual Studio 2017的人们找到在同一行中重复的相同变量名提供适应性的答案。

我使用的搜索是:

(\w+) = \1 [&]

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

MyString = MyString & something

MyString &= something

该表达式可与全部查找一起使用,因此我能够找到所有实例