emacs里怎么用正则删除多行文本
专栏:ExASIC Aug. 24, 2024, 8:44 a.m. 100 阅读
跨行匹配的方法介绍

rtl里例化了大量的stdcell,为了加速仿真,手工简化stdcell.v需要把所有的specify删掉。格式如下:

specify
xxx
endspecify

在emacs里默认.*不能匹配换行符,需要用下面的方法。我们知道[a-z]表示从a到z的26个字母。那么[z-a]中z的ascii码比a大,就什么都匹配不到。加个反[^z-a]就可以表示匹配所有字符,包括换行符。由于specify语句每个stdcell里都有,就需要加上?限制为非贪婪模式。

specify[^z-a]*?endspecify

在emacs里按C-M-%来调用query-replace-regexp,查找的地方输入上面的正则,替换的地方不填就是删除。最后按!替换全部。

 

感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏