我遇到了瓶颈。有人知道一个好的文本编辑器,像Notepad++一样具有搜索和替换功能,但也可以进行多行正则表达式搜索和替换吗?基本上,我正在寻找能够匹配正则表达式的东西,例如:
搜索oldlog\(.*\n\s+([\r\n.]*)\);
替换newlog\(\1\)
有什么建议吗?
我遇到了瓶颈。有人知道一个好的文本编辑器,像Notepad++一样具有搜索和替换功能,但也可以进行多行正则表达式搜索和替换吗?基本上,我正在寻找能够匹配正则表达式的东西,例如:
搜索oldlog\(.*\n\s+([\r\n.]*)\);
替换newlog\(\1\)
有什么建议吗?
Notepad++现在可以处理多行正则表达式(只需升级到最新版本-该功能是在2012年3月左右引入的)。
我需要从HTML文档中删除所有的onmouseout和onmouseover语句,并且我需要创建一个非贪婪的多行匹配。
onmouseover=.?\s*".*?"
如果您想使用多行匹配能力,请确保勾选:
[ ] .匹配换行符复选框。
EditPad Pro比我用过的其他任何编辑器都具有更好的正则表达式功能。
此外,我怀疑您的正则表达式中存在错误——[\r\n.]
只会匹配回车、换行和句号。如果您想匹配任何字符(即“点操作符加CR和LF”),请改用[\s\S]
。
[\r\n.]
不能匹配点运算符加上 CR 和 LF? - Max Burns[.()+?*]
将精确匹配这些字符而没有任何特殊行为。请查看此处的“字符类中的元字符”以获取更多信息:http://www.regular-expressions.info/charclass.html。 - Ben Blank我使用免费的Eclipse,如果您是开发人员,则可能已经拥有它。 '\R'作为平台无关的行分隔符。以下是多行搜索的示例:
搜索:
\bibitem.(\R.)?\R?{([^{])}$\R^([^\].[^}]$\R.$\R.)
替换:
\defcitealias{$2}{$3}
我相信Notepad++现在可以通过默认包含的TextFX插件实现这一点。 在Notepad ++中按Control-R并尝试一下。
(来源: ultraedit.com)
TextPad 拥有出色的正则表达式搜索和替换功能;我使用它已经一段时间了,感觉非常满意。
来自功能:
使用类UNIX正则表达式的强大搜索/替换引擎,具有编辑器宏的功能。可以搜索目录树中的文件集,并可一次性在所有打开的文档中替换文本。
如需更多选项,请查看Notepad++替代方案,请访问AlternativeTo.net。
# This example replaces any <br/> that is followed by another on the next line (with optional spaces in between), with a single one
editor.pymlreplace(r"<br/>\s*\r\n\s*<br/>", "<br/>\r\n")