ある正規表現に対して特定の文字列がマッチングしているのを確認してくれるサイトは山のようにあるんだけど、正規表現そのものがどんな文字列を期待しているのか分析・解読してくれるツールってあまりないのよね...(´・ω・`)
例えば
^(a-z|A-Z|0-9){4}$
こんな簡単なものだったらすぐに分かるけど
これが複雑になってくると自分でも頭が???状態になってしまいます><
そこでこんなものを見つけました。
Regexper
www.regexper.com 正規表現を入力してDisplayボタンを押すとその正規表現が示す内容を図で表示してくれます。例えば誰かが書いたこんな正規表現で???になるときもあると思いますが
^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$
メールアドレスをマッチングさせる正規表現ってのは分かるんだけど、この表記でどんな文字列を
期待しているのか分からない場合でもこのツールを通してみると
図の見方は左から線を辿って行って分岐があれば好きな所に行けますよーって感じ
そして右まで辿り着くと出てきた文字を繋ぎ合せて文字列を期待している感じ
この場合
Group #1のところは必ず1回は一定の文字を繰り返さなければならないけど、Group #2のところは別に文字は繰り返さなくても問題ないんだ!っていうのが一目で分かります。
あとは表記ゆれとか...
正規表現だけじゃ分からないけどこれなら
画面のキャプチャーを取って人に説明する際に役に立ちそうですねー(・∀・)