質問: 下記の正規表現にて条件分岐を実装する場合、$defendantに.(ドット)が連続して2文字以上存在した場合、処理1は行われますでしょうか。 if( !($defendant =~ /^(-\w!#$%&\'*+\/=?^`{|}~*@\w+([-.][-\w+])*.\w+([-.]\w+)*\s*[,;]?\b)*$/) ){ 処理1 } すみませんがご教授いただけますでしょうか。
回答: 期待している入力文字列が不明ですが、以下の正規表現テストサイトで試した結果、「@」より前に「..」がある場合はマッチしますが、「@」より後ろに「..」があるとマッチしませんでした。 Rubular: a Ruby regular expression editor and tester 他にも正規表現チェックできるサイトがあるので、お試しあれ。正規表現の要素毎にグラフィカルに動作を表示するサイトもあります。 ブラウザから手軽にチェックできる正規表現テストツールまとめ なお、Perl特有の表現を使用している場合はRuby用チェッカーやPerlを選択できるチェッカーでないと正しくチェックできませんのでご注意を。