2017-02-10 2 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

はい、そうです。 []パターンで-を使用すると、左の文字から右の文字を意味します。従って,-?は実際にはアスキー文字,からアスキー文字?までを意味し、その間にはすべての文字が含まれています。これには、投稿したものも含まれます。

あなたは[]グループの終わりに-を置くことができますし、それは文字の範囲を意味しない、自身の略で、またはあなたが\-のように、その前に\文字を付加することで、それを逃れることができます。

関連する問題