【问题标题】:Find and replace digits not in brackets in Notepad++在记事本++中查找和替换不在括号中的数字
【发布时间】:2015-11-15 13:22:42
【问题描述】:

我有一个看起来像的 Latex 文档

Hello, my figure \ref{figure1} has an ecuation $e=mc^2$ with a mass of 10.5Kg or 20.5 Kg.

我想使用 siunitx 包,所以我的目标是将文本转换为

Hello, my figure \ref{figure1} has an ecuation $e=mc^2$ with a mass of \SI{10.5}{Kg} or \SI{20.5}{Kg}.

如何找到任何带或不带小数位的数字,后跟一个单词,它们之间有或没有空格。仅查找不在 {} 或 $$ 之间的那些。将匹配替换为 \SI{digit found}{word after digit}

任何建议都会有所帮助。理想情况下使用记事本++,但可以使用 Python、Sed...

【问题讨论】:

    标签: replace find notepad++


    【解决方案1】:

    怎么样:

    查找内容:(?<!\{)(?<!\$)\b(\d+(?:\.\d+)?)(?!=\})(?!=\$)\s*([a-zA-Z]+)
    替换为:\\SI{$1}{$2}

    【讨论】:

    • 谢谢,仍然可以找到与 \ref{figure12ecuation} 匹配的内容,但其余部分非常有用!您能否编辑以添加额外的反斜杠:\\SI{$1}{$2}
    • @katutxakurra:您可以在数字前添加单词边界\b,请参阅我的编辑。我还添加了一个双反斜杠。
    猜你喜欢
    • 2013-05-21
    • 2013-08-20
    • 2021-12-23
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多