3

例えば:

(regexp-match #rx"a|b" "cat")

"a|b"パターンを動的に作成できるように、変数をにバインドしたいと思います。

4

1 に答える 1

6

次のように、必要に応じて動的にパターンを作成できます(ドキュメントを参照)。

(regexp "a|b")
> #rx"a|b"

パターンは単なる文字列であることに注意してくださいregexp。プロシージャは、パターンを正規表現オブジェクトに変換します。表記は正規表現の文字通りの表現であり、手順#rx""を使用して同じ効果を得ることができます。regexpその後、正規表現を変数にバインドできます。

(let ((regexp (regexp "a|b")))
  (regexp-match regexp "cat"))

または、プロシージャパラメータとして使用されます。

(define (matcher regexp)
  (regexp-match regexp "cat"))

(matcher (regexp "a|b"))

またはあなたが空想する他の方法。

于 2012-11-07T01:18:13.363 に答える