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 回答