Notepad ++和分隔符:自动替换``string''通过\ command {string}

时间:2014-10-25 22:50:10

标签: regex string replace notepad++

在Notepad ++中,我希望用``string''替换\command{string}类型的许多实例,其中string可以是任何字符串。我非常接近我想要实现的目标:

Find: (?<=``)(.*?)(?='')
Replace: \\command{\1}

还有一个问题。使用上面的正则表达式代码而不是\command{string}我得到``\command{string}''而我不确定为什么``''没有删除?

2 个答案:

答案 0 :(得分:2)

这是因为您正在使用外观断言。 Lookaround (zero-width) assertions仅断言一个位置可以匹配,并且不“消耗”字符串上的任何字符。您可以使用以下正则表达式。

Find: ``([^']+)''
Replace: \\command{\1}

答案 1 :(得分:1)

您需要将所有内容都包装到捕获组中并使用它。 NP ++似乎不支持前瞻/后退,但你不需要为这个特定情况需要它:

``([^']+)'' -> \\command{\1}

这将确保它与以下内容中的两个命令(最长匹配)不匹配:

run ``ls -l'' or ``ls -a''