gpt4 book ai didi

regex - Emacs - Lisp 中的正则表达式需要双重转义 - 为什么?

转载 作者:行者123 更新时间:2023-12-02 12:10:18 29 4
gpt4 key购买 nike

我一直在使用 emacs lisp,我想编写一个小函数来进行正则表达式搜索和替换。我花了很长时间才让正则表达式正常工作,因为我没有意识到在编写 lisp 代码时所有特殊字符都需要双重转义(但交互使用 query-replace-regexp 时则不需要!)。

例如,交互地使用 query-replace-regexp 您可以使用

^\(.*\)[\t]-.*$

但是在编写 elisp 代码时,您需要对所有内容进行双重转义,如下所示:

^\\(.*\\)[\t]-.*$  

我终于在 Steve Yegge article 中找到了对此的引用。 ,但我想知道是否有人知道这是为什么?

最佳答案

这是因为你需要转义字符串中的反斜杠。如果不对字符串中的 \( 反斜杠进行转义,则结果只是 (

关于regex - Emacs - Lisp 中的正则表达式需要双重转义 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/538842/

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