如何匹配未标记为所需LaTeX标记的所有短语?

时间:2015-09-08 14:47:03

标签: regex linux unix latex

目的

查找所有出现的" Bernie Sanders"尚未使用\senator{ }标记的内容。我想列出与grep匹配的视觉检查。然后我想用一个命令递归修复所有文件(例如sed,它不支持非贪婪的正则表达式。)

示例文件

Bernie Sanders
\senator{Bernie Sanders}
The senator of Vermont is \senator{Bernie Sanders}.
A \texttt{senator of Vermont} is Bernie Sanders.
A senator of Vermont is \textit{Bernie Sanders}.
\textit{Bernie Sanders} is a senator of Vermont.
Is this the same Bernie Sanders?
Is Bernie Sanders a good senator?
Will we ever see a \textbf{President Bernie Sanders}?

问题

正则表达式不得"意外"干扰其他命令

尝试: \[^senator]*{Bernie Sanders

我不知道如何排除参议员,但在伯尼桑德斯之前包括空格和其他命令。

开始

  • 可以通过空格
  • 进行
  • 没有由\参议员{
  • 继续
  • 可能是第一件事就行了

结束

  • 可能以空格,冒号,分号,问号,逗号,括号,括号(如果在另一个命令中),句号/句号结束

1 个答案:

答案 0 :(得分:1)

仅当前缀\参数不存在时才会匹配

(?<!\\senator\{)Bernie\sSanders