我正在尝试使用三个捕获组来编写用于查找和替换的正则表达式:
({\\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组中的内容不匹配?