我试图整理一些客户数据。有几个条目将此作为URL:
http://not available
我以为我会跳过Regexp :: Common的那些(以及其他潜在的不匹配),但由于某种原因,带有未转义空格的URL匹配$ RE {URI} {HTTP}:
$ perl -MRegexp::Common='URI' -e 'my $url = q{http://not available}; print "yes\n" if $url =~ m#$RE{URI}{HTTP}#'
yes
我已经看过' { - nospace}'其他正则表达中提到的标志,但附加它似乎也没有在这里申请/工作。
我解释错了吗?在某些我不知道的上下文中,http URL中是否允许使用空格?有没有办法迫使正则表达式禁止它?
答案 0 :(得分:4)
子字符串http://not
是有效的URL。如果要检查给定字符串是是否为URL(而不是:它只是包含 URL),则必须锚定匹配项:
/\A$RE{URI}{HTTP}\z/