例如:
(regexp-match #rx"a|b" "cat")
我想将变量绑定到"a|b"
,以便我可以动态创建模式。
答案 0 :(得分:6)
您可以根据需要动态构建模式(请参阅documentation),如下所示:
(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"))
或者你想要的任何其他方式。