引擎:Vim RegEx
输入:
\begin{thoerm}\label{ABC_for_all}
If the ABC is a common good, $ABC(places)$ includes everything.
\end{thorem}
We will now prove Threorem \ref{ABC_for_all}.
表情:
(?<!(\\label|\\ref)\{\w*)ABC(?!\w*\})
预期:
我想匹配(并在 neovim 中替换)“ABC”,但前提是它不是名称的一部分(因此不在 \label{...} 或 ef{...} 上下文。
结果:
不起作用。
如果它出现在上下文中,我知道如何替换它:
:s/(\\label\{\w*)ABC(\w\})*/\1alphaber\2/g
但不是它之外发生的事情。
Lookahead 不起作用,因为 ABC 可能出现在标签命令中的某个位置,因此我需要可变宽度。我也无法弄清楚如何将捕获组转变为实际的比赛。这似乎是一个常见的情况,但到目前为止我发现的所有内容都不包括它。