为什么这个正则表达式与输入匹配(PCRE)?

时间:2017-02-10 00:44:04

标签: regex pcre

我无法理解为什么会出现这种模式

^[A-Za-z0-9\.,-\?]+$

将与以下输入匹配:

should-match
should-match-2.no.problem.cool.with.me.
however:this->should;not;match=yet=it=does.

毕竟,> : ; =不包含在模式中。

Debuggex Demo

1 个答案:

答案 0 :(得分:0)

是的,他们是。当你在-模式中使用[]时,你的意思是从左边的字符到右边的字符。所以,-?实际上意味着从ascii字符,到ascii字符?,其中包括其间的所有字符。这包括您发布的那些。

您可以将-放在[]组的末尾,然后它代表自己,不代表一系列字符,或者您可以通过添加{{1}来逃避它在\之前的char前面。