(?: )
の中身から見ていきます。
.
はピリオドという文字を表します。単に .
と書くとメタ文字なので,バクスラッシュをつけてエスケープし,その文字そのものを表させています。
[a-zA-Z0-9-]
は英数字とハイフンからなる文字クラスですね。
その次の +
は [a-zA-Z0-9-]
だけにかかっています。
[a-zA-Z0-9-]+
で,〈英数字・ハイフンの 1 文字以上の連なり〉です。
以上をまとめると,.[a-zA-Z0-9-]+
は〈ピリオドのあとに 1 文字以上の英数字・ハイフンが続いたもの〉となります。
これを (?: )
で包んでいるわけですが,(?: )
の説明の前に,まず ( )
を振り返ってみます。
( )
は二つの働きがありましたね。
キャプチャー(捕獲)とグルーピング(グループ化)です。
(?: )
は,ここからキャプチャーの働きを除いたものです。つまり,グルーピングのためのものです。
以上が回答ですが,te2ji さんのおっしゃるように,E-mail の正規表現は闇が深いので,自分でどうにかしようとするのはやめたほうがよさそうです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/06 14:09