在Notepad ++中,我希望用``string''
替换\command{string}
类型的许多实例,其中string
可以是任何字符串。我非常接近我想要实现的目标:
Find: (?<=``)(.*?)(?='')
Replace: \\command{\1}
还有一个问题。使用上面的正则表达式代码而不是\command{string}
我得到``\command{string}''
而我不确定为什么``
和''
没有删除?
答案 0 :(得分:2)
这是因为您正在使用外观断言。 Lookaround (zero-width
) assertions仅断言一个位置可以匹配,并且不“消耗”字符串上的任何字符。您可以使用以下正则表达式。
Find: ``([^']+)''
Replace: \\command{\1}
答案 1 :(得分:1)
您需要将所有内容都包装到捕获组中并使用它。 NP ++似乎不支持前瞻/后退,但你不需要为这个特定情况需要它:
``([^']+)'' -> \\command{\1}
这将确保它与以下内容中的两个命令(最长匹配)不匹配:
run ``ls -l'' or ``ls -a''