可以最好地帮助我系统地修改正则表达式搜索的"替换"字段,因为它遇到每个匹配.
例如,我有一个xml文件需要在文本中的常规点插入短语"id = $ number",基本上,每次正则表达式匹配时,$ number ++(id = 1,id = 2等)直到结束的文件.
我知道我可以写一个bash/perl/python脚本或其他类似的东西,但我希望它至少适度用户友好,所以我可以教我聪明的(但技术上不那么倾向)工人如何使用它和做出自己的修改.复兴对他们来说不是问题.
到目前为止我最接近的是Notepad ++的列编辑器和'增加[数字] by'函数,但是我必须编写一个单独的正则表达式来对齐所有内容,添加增量,然后写另一个将其放回去.不幸的是,我需要在太多不同类型的文件上使用此函数,并且'替换'以使宏可行.
理想情况下,该程序也可用于Windows和Linux(WINE是可接受的,但本机更受欢迎),并且具有"VI/VIM输入"选项(如果它是文本编辑器),但这些是次要的.
当然,如果有一个OSS解决方案会很好,如果它提供了我正在寻找的解决方案,我很乐意向开发人员捐赠20到50美元.
道歉,并且非常感谢您的帮助!
emacs(版本22及更高版本)可以满足您的需求.请参阅Steve Yegge的博客,了解有关它的真正有趣的读物.我认为这应该有效:
M-x replace-regexp Replace regexp: insert pattern regexp here Replace regexp with: id = \#
\#
是一个特殊的元字符,它被目前为止发生的替换总数所取代,从0开始.如果希望列表从1开始而不是0,请使用以下替换字符串:
id = \,(1+ \#)