Webエンジニアの雄大です。
前も少し、正規表現を取り上げたのですが、
http://yudai-stadium.com/blog/?p=134
正規表現のおさらいとして、問題を考えてみました。
次のパターンに文字列がマッチするか、○か×か
(1)
パターン:[012]{3}
文字列:111
(2)
パターン:[012]{3}
文字列:1111
(3)
パターン:[012]{3}
文字列:012
(4)
パターン:[012]{3}
文字列:12
(5)
パターン:[012]{3}
文字列:013
(6)
パターン:[012]{3}
文字列:1113
答え
(1)○
(2)○
(3)○
(4)×
(5)×
(6)○
解説
2番と6番がひっかけ。
あくまでも、マッチしていればいいので、
(2)で文字列が1111となっていても、1111の中の111がマッチしているので、○となる。
追加問題で、(2)や(6)で3桁だけにする。
つまり11や1111などの2桁や4桁は排除するにはどうすればいいか。
答えは
^[012]{3}$
^[012][012][012]$
^[0-2][0-2][0-2]$
のいずれかにする。
コメント