35.3.3.2 使用 rx 正则表达式的函数和宏

Macro: rx rx-form…

rx-form 转换为字符串正则表达式,效果等同于它们位于 (seq …) 形式的主体中。 rx 宏展开为字符串常量, 或者若使用 literalregexp 形式,则展开为求值后返回字符串的 Lisp 表达式。 示例:

(rx (+ alpha) "=" (+ digit))
  ⇒ "[[:alpha:]]+=[[:digit:]]+"
Function: rx-to-string rx-expr &optional no-group

rx-expr 转换为字符串正则表达式并返回。 若 no-group 缺失或为 nil, 则在必要时将结果用非捕获组 ‘\(?:…\)’ 括起, 以确保附加到其后的后缀运算符作用于整个表达式。 示例:

(rx-to-string '(seq (+ alpha) "=" (+ digit)) t)
  ⇒ "[[:alpha:]]+=[[:digit:]]+"

rx-exprliteralregexp 形式的参数 必须为字符串字面量。

pcase 宏可直接将 rx 表达式用作模式; see rx in pcase

有关向 rx 表示法添加用户定义扩展的机制, see 定义新的 rx 形式