GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Rx-Functions.html ・ emacs-doc.conao3.com

35.3.3.2 rx 正規表現を使用する関数とマクロ

マクロ: rx rx-form…

rx-form を、あたかも (seq …) フォームのボディであるかのように文字列正規表現に変換します。rx マクロは文字列定数に展開され、literal または regexp フォームが使用されている場合は、文字列として評価される Lisp 式に展開されます。例:

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

rx-expr を文字列正規表現に変換して返します。no-group が省略されているか、または nil が指定されている場合は、接尾辞演算子が式全体に適用されることを確実にするため、必要に応じて結果を非キャプチャグループ ‘\(?:…\)’ で囲みます。例:

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

rx-expr における literal および regexp 形式への引数は、文字列リテラルである必要があります。

pcase マクロでは、rx 式をパターンとして直接使用できます。pcase 内の rx を参照してください。

rx 表記にユーザー定義の拡張を追加する仕組みについては、新しい rx 形式の定義を参照してください。