gpt4 book ai didi

用 Emacs 替换正则表达式

转载 作者:行者123 更新时间:2023-12-04 06:13:12 25 4
gpt4 key购买 nike

我正在尝试做一个 search and replace with regexs .

假设我有一个 foreach(foo1.txt, foo2.txt, foo3.txt, foo4.txt) .
我想将 "放在列表中的每个项目周围。

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

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

最佳答案

请注意,括号和圆括号需要在 中转义(“额外斜线”)。搜索 regexp,但不在替换正则表达式中。

转义是必需的,因为 lisp 解析器在正则表达式引擎之前看到正则表达式。

但是,如果您以编程方式编写(而不是交互式输入),则需要避免转义!哎呀呀呀……

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

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

转义的括号被转义是因为它们是分组的,未转义的括号是字面括号。

您可能想查看 Emacs Wiki Regex Crash CourseSteve Yegge's Effective Emacs regex section .

关于用 Emacs 替换正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com