正则表达式:如何使第二个捕获组与第一个捕获组匹配

时间:2018-12-18 13:00:40

标签: regex

我正在尝试使用三个捕获组来编写用于查找和替换的正则表达式:

({\\textless}sub{\\textgreater})(.*)({\\textless}\/sub{\\textgreater})

这在此字符串上非常有效:

C{\textless}sub{\textgreater}3{\textless}/sub{\textgreater}

允许我用$_替换组1,保留第二组(使用\2),并用$替换组3,这样我的字符串就变成了C$_3$

但是在同一行中重复模式的字符串上它不起作用:

\textless}sub{\textgreater}3{\textless}/sub{\textgreater} and C{\textless}sub{\textgreater}4{\textless}/sub{\textgreater}

因为(.*)匹配所有内容,包括组1的下一个开始。请参见此处:https://regex101.com/r/rT31ax/1

即我从替换中得到的是:

C$_3{\textless}/sub{\textgreater} and C{\textless}sub{\textgreater}4$

但是我想要的是:

C$_3$ and C$_4$

如何调整(.*),使其与第1组中的内容不匹配?

0 个答案:

没有答案