Next: , Previous: , Up: Rx Notation   [Contents][Index]


35.3.3.2 rxのregexpを使用する関数とマクロ

Macro: rx rx-form…

rx-formがあたかも(seq …)フォームのbodyであるかのように文字列regexpに変換する。rxマクロは文字列定数、またはliteralregexpフォームが使用されていたら文字列に評価されるLisp式に展開される。たとえば:

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

rx-exprをリターンされる文字列regexpに変換する。no-groupが省略またはnilの場合には、後に付加する後置演算子が式全体に適用されるために、必要なら結果を非キャプチャリンググループ‘\\(?:…\\)’としてカッコで括る。たとえば:

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

rx-expr内のフォームliteralおよびregexpにたいする引数は、文字列リテラルでなければならない。

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

rx表記へのユーザー定義の拡張メカニズムについては、Extending Rxを参照してください。