gpt4 book ai didi

emacs - 如何使用 rx 在 Emacs 中创建害羞的群组?

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

一般我可以用优秀的rx宏来创建可读的正则表达式,并确保我已经转义了正确的元字符。

(rx (any "A-Z")) ;; "[A-Z]"

但是,我不知道如何创建害羞的团体,例如 \(?:AB\) . rx有时会在其输出中产生它们:
(rx (or "ab" "bc")) ;; "\\(?:ab\\|bc\\)"

但我想明确添加它们。我可以:
(rx (regexp "\\(?:AB\\)"))

但这打败了 rx的要点.

在一个完美的世界中,我希望能够写:
(rx (shy-group "A"))

我会满足于这样的事情(这些都不起作用):
;; sadly, `regexp` only accepts literal strings
(rx (regexp (format "\\(?:%s\\)" (rx WHATEVER))))

;; also unfortunate, `eval` quotes the string it's given
(rx (eval (format "\\(?:%s\\)" (rx WHATEVER))))

如何使用 rx 创建带有害羞组的正则表达式?

最佳答案

我想了一个rx的结构form 消除了显式创建害羞组的任何需要——害羞组可能需要的一切都由其他语法解释。

例如你自己的例子:

(rx (or "ab" "bc")) ;; "\\(?:ab\\|bc\\)"

关于emacs - 如何使用 rx 在 Emacs 中创建害羞的群组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084083/

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