当前位置:  开发笔记 > 开发工具 > 正文

用Emacs替换正则表达式

如何解决《用Emacs替换正则表达式》经验,为你挑选了1个好方法。

我正在尝试搜索并替换为正则表达式.

假设我有一个foreach(foo1.txt, foo2.txt, foo3.txt, foo4.txt).我想把"围绕列表中的每个项目.

我认为 - 从文档 - 这个正则表达式将起作用 (foo[1-4]\.txt) -> "\&".

但事实并非如此.我究竟做错了什么?



1> Michael Paul..:

请注意,括号和括号需要在搜索 regexp中转义("额外斜杠"),但不能在替换正则表达式中转义.

转义是必需的,因为lisp-parser在正则表达式引擎之前看到正则表达式.

但是,如果你是以编程方式编写的(而不是交互式条目),则需要逃避逃脱!AY-奕奕....

interactive:
M-x replace-regexp RET \(obj.method(.*)\{1\}\) RET trim$(\1)

programmatic:
(replace-regexp "\\(obj.method(.*)\\{1\\}\\)" "trim$(\\1)")

逃脱的parens因为他们正在分组而逃脱,未转义的parens是字面上的parens.

您可能想查看Emacs Wiki Regex Crash Course和Steve Yegge的Effective Emacs regex部分.


有帮助,但有点可怕."逃脱逃脱".MEEP.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有