如何使用 VSCode 正则表达式查找所有不带 ~ 的 \cite?
How to use VSCode regexp to find all ocurrences of \cite without ~?
我需要在我论文的几个文件中找到所有出现的 any text\cite{...}
并将它们更改为 any text~\cite{...}
。但我不明白 VSCode 搜索正则表达式的工作原理。
我试过 ^[!~]\cite
但它似乎不理解这种不是 ~
.
的字符的表示法
有人可以帮忙吗?
您可以使用
([^~]|^)(\cite)
替换为~
,见regex demo.
详情:
([^~]|^)
- 第 1 组:除 ~
([^~]
) 或 (|
) 行首之外的任何字符
(\cite)
- 第 2 组:\cite
文本。
~
替换模式使用组 1 + ~
+ 组 2 值来替换匹配项。
Wiktor 的替代答案可能是:
(?<!~)(\cite)
并替换为:
~
(?<!~)
是一种否定的后视,迫使正则表达式只匹配以波浪号 (~) 开头的 而不是 的内容。 (\cite)
按字面匹配文本,其中括号创建捕获组。
在替换中首先添加你想要添加的波浪号,然后是
这是一个反向引用,意思是“获取捕获组 1 并放在这里”。
组从 0(即整场比赛)开始编号。并且从外到内,从左到右编号。负面回顾不是捕获组。
我需要在我论文的几个文件中找到所有出现的 any text\cite{...}
并将它们更改为 any text~\cite{...}
。但我不明白 VSCode 搜索正则表达式的工作原理。
我试过 ^[!~]\cite
但它似乎不理解这种不是 ~
.
有人可以帮忙吗?
您可以使用
([^~]|^)(\cite)
替换为~
,见regex demo.
详情:
([^~]|^)
- 第 1 组:除~
([^~]
) 或 (|
) 行首之外的任何字符(\cite)
- 第 2 组:\cite
文本。
~
替换模式使用组 1 + ~
+ 组 2 值来替换匹配项。
Wiktor 的替代答案可能是:
(?<!~)(\cite)
并替换为:
~
(?<!~)
是一种否定的后视,迫使正则表达式只匹配以波浪号 (~) 开头的 而不是 的内容。 (\cite)
按字面匹配文本,其中括号创建捕获组。
在替换中首先添加你想要添加的波浪号,然后是 这是一个反向引用,意思是“获取捕获组 1 并放在这里”。
组从 0(即整场比赛)开始编号。并且从外到内,从左到右编号。负面回顾不是捕获组。