2017-02-10 20 views
1

я не могу понять, почему эта модельПочему это регулярное выражение соответствует этому вводу (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

+2

Не глядя дальше - в вашем персональном классе есть подозрительный невыбранный минус. –

+0

@SebastianProske вы правы! –

+0

Побег '-', так что у вас есть'^[A-Za-z0-9 \., \ - \?] + $ ', И вам не нужно скрывать'? 'Или' .' в классе символов, поэтому теперь у вас есть '^ [A-Za-z0-9., \ -?] + $' – dawg

ответ

0

Да, они есть. когда вы используете - в шаблоне [], вы имеете в виду от персонажа слева к символу справа. Таким образом, ,-? фактически означает от символа ascii , до символа ascii ?, который включает в себя все символы между ними. Сюда входят те, которые вы опубликовали.

Вы можете поставить - в конце [] группы, а затем она стоит для себя, не означает диапазон символов, или вы можете избежать этого,, предваряя \ полукокса перед ним, как и в \-.

 Смежные вопросы

  • Нет связанных вопросов^_^