如何在Notepad++中执行非贪婪正则表达式查询? [英] How can I do a non greedy regex query in notepad++?

查看:15
本文介绍了如何在Notepad++中执行非贪婪正则表达式查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用LaTeX写论文,不小心写了cite[]而不是cite{}。 我可以手动浏览整个文档,但我想知道如何在Notepad++中使用正则表达式完成此操作。

我最初尝试了\cite[(.*)],并将其替换为cite{1},这适用于诸如

这样的简单情况
cite[hello world] blah blah 
但是,如果一个段落中有两个或两个以上的引用,则它与所有引用都匹配。 例如

cite[aaa]cite[bbb] something here cite[ccc]

匹配整行

如何获得非贪婪匹配,以便将上述行作为3个单独的匹配进行匹配 并且替换命令的结果应该会给我

cite{aaa}cite{bbb} something here cite{ccc}

推荐答案

使用不情愿(也称为非贪婪)表达式:

\cite[(.*?)] 

请参阅live demo

添加问号将.*从贪婪(默认值)更改为不情愿,因此它将使用尽可能少的来查找匹配项,即它不会跳过与一个词的开始匹配的多个搜索词,一直跳到另一个词的结尾。

ie使用.*匹配将是

foo cite[aaa]cite[bbb] something here cite[ccc] bar
    ^----------------------1---------------------^

但对于.*?,匹配项将为:

foo cite[aaa]cite[bbb] something here cite[ccc] bar
    ^---1----^^----------------2-----------------^

次要注意:]不需要转义。

这篇关于如何在Notepad++中执行非贪婪正则表达式查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆