rx 正規表現を使用する関数とマクロ
¶rx-form を、あたかも (seq
…) フォームのボディであるかのように文字列正規表現に変換します。rx
マクロは文字列定数に展開され、literal または regexp フォームが使用されている場合は、文字列として評価される Lisp 式に展開されます。例:
(rx (+ alpha) "=" (+ digit)) ⇒ "[[:alpha:]]+=[[:digit:]]+"
rx-expr を文字列正規表現に変換して返します。no-group が省略されているか、または nil
が指定されている場合は、接尾辞演算子が式全体に適用されることを確実にするため、必要に応じて結果を非キャプチャグループ ‘\(?:…\)’ で囲みます。例:
(rx-to-string '(seq (+ alpha) "=" (+ digit)) t) ⇒ "[[:alpha:]]+=[[:digit:]]+"
rx-expr における literal および
regexp 形式への引数は、文字列リテラルである必要があります。
pcase マクロでは、rx
式をパターンとして直接使用できます。pcase
内の rx を参照してください。
rx 表記にユーザー定義の拡張を追加する仕組みについては、新しい rx
形式の定義を参照してください。