2
我试图创建匹配某个字符串类型的逆的正则表达式(例如,字符串不以“.js”结尾)。球拍正则表达式匹配
根据文档,这应该是表达式#rx"(?!\\.js$)"
,但似乎并不奏效。为了测试它,我有这样的功能:
(define (match-test regex) (map (lambda (text) (regexp-match? regex text)) '("foo.js" "bar.css" "baz.html" "mumble.gif" "foobar")))
(match-test #rx"\\.js$")
回报(#t #f #f #f #f)
如预期,但(match-test #rx"(?!\\.js$)")
回报(#t #t #t #t #t)
,在那里我会想到(#f #t #t #t #t)
。
我在做什么错,我如何在Racket中实际得到一个正则表达式来表达“匹配任何不包含[x]”的想法?
附录:如果有一个人在那里谁拥有足够的代表,你可能想创建一个“拍”或“racket-计划“标签。目前还没有人,PLT计划的人正试图改变他们的项目名称。 – Inaimathi 2010-05-22 17:02:35
我为你添加了标签。 – 2010-05-22 17:04:23
是否有任何特殊的原因,你不能只是(映射不是这个函数的结果)来得到否定?或者这更多的是“我想明白为什么这不起作用”的问题? – jakebman 2010-05-22 19:59:42