匹配分组 - 搜索上的\ 1和替换上的\ 1之间有什么区别

时间:2017-04-04 12:06:51

标签: regex

我经常看到\1的2个匹配组案例,例如:

  • 搜索:(?)(\w+d+).*\1
  • 替换:Leave Empty

  • 搜索:(?)(\w+d+).*
  • 替换:\1

在哪些情况下,我可以在搜索时使用\1,在哪些情况下,我可以在替换时使用\1

2 个答案:

答案 0 :(得分:1)

?? “你有什么不同”是什么意思?没有区别。两者都引用了第一个捕获组。但是你不要以同样的方式使用它们。

例如: (\d+)\.\1表示:“匹配一些数字(\d+)后跟.,后跟相同的数字\1

示例 123.123匹配

(\d+)\.替换为\1表示:“替换一些数字后跟.仅包含数字”

示例 123.已替换为123

答案 1 :(得分:0)

\1是对第一个捕获组的反向引用,它位于内部正则表达式中。如果您想在替换中添加对捕获组的引用,则必须使用$1\1,具体取决于您使用的正则表达式实现。