Perlの正規表現で条件分岐する方法を紹介します。 1.Perlの正規表現で条件分岐する たとえば文字列の先頭に「"」が存在する場合、文字列の末尾に「"」が必須であるパターンと、「"」がないパターン、 "foo" と foo の両方にマッチさせたい場合の正規表現は次のようになります。 ^(")?(?(1)\w+"|\w+)$ サンプルコード #!/usr/bin/perl use strict; use warnings; my $str = '"aaa"'; if ( $str =~ /^(")?(?(1)\w+"|\w+)$/ ) { print "match"; } else { print "not match"; } 解説です。まず、 ^(")? で、先頭にダブルクォーテーション「"」が1文字(または0文字)存在することを判定します。 次に、 (?(1) で、グループ(ここでは1
