Perlの正規表現


  1. 正規表現

    1. 正規表現

      正規表現は特定の文字列の照合(パターンマッチング)をするための表現形式です。Perlはこの正規表現を中核技術として構成されました。

    2. 一文字の表現

      /a/:文字a、
      /[abcd]/:a,b,c,dのどれかの文字
      /[0-9]/:0から9の文字
      /[^0-9]:数字でない文字([に続く^は否定」
      /\d/:/[0-9]/と同じ(数字)
      /\w/:[a-zA-z0-9]と同じ(任意の記号でない文字)
      \n、\t、\s は改行、タブ文字、区切り記号を示す

    3. 文字列の表現

      /abc/:    文字列 "abc"
      /a./:     aと任意の文字( . は任意の文字を示す)
      /a+/:    aが1個以上並んだ文字列
      /a{5,10}/: aが5以上10まで並ぶ

    4. 特殊な演算

      特殊記号 意味
      文字列の先頭 ^123:先頭から123の文字
      $ 文字列最後 ^123$:123 のみを含む文字列
      [ ] 文字クラス [A-Z]:大文字
       | 選択 [A|Z]:AまたはZ
      * 0回以上の繰り返し A[0-9]*:A,A7,A023,a2222
      + 1回以上の繰り返し A[0-9]+:A7,A023,a2222
      { n } n回の繰り返し [0-9]{2}:23,07
      { n,m } n以上m以下の繰り返し [0-9]{2,3}:23,078
      { n,} n以上の繰り返し [0-9]{2,}:23,078,22345
      ? 0か1文字 A[0-9]?:A,A2
    5. 特殊な文字

      \n. 改行
      \t タブ
      \s 半角スペース、タブ、改行
      \S \s以外
      \w 半角英数字と_
      \W \w以外
      \d 半角数字
      \D \d以外

  2. マッチング演算

    1. マッチング演算

      以下の =~ 演算は、変数に正規表現のパターンが含まれるとき、真になります。
       変数 =~ /正規表現/

      以下のように、マッチングの条件を設定できます、
       /正規表現/[g][i][m],[o]
      g は繰り返してマッチングします。o は繰り返す場合、変数の展開を一度だけに限定します。i は大文字、小文字を区別しません。
      マッチングした文字列は、$&に記録します。$` をマッチングした文字列の前、$' は後の文字列を記録します。

    2. 文字列の置換

       文字列を置換するには、
        文字列 =~s/検索文字列/置換文字列/オプション
      の形式で指定します。これで、指定した文字列の中で 検索文字列を探し、それを 置換文字列 と置換します。オプションで g を付加すると、文字列全体を置換します。
      $univ = '中京大学情報科学部';
      $univ =~ s/科学/工学/;
      print $univ, "\n";
      これで、
      $univ = '中京大学情報科学部'; $univ =~ s/科学/工学/;
      が表示されます。
    3. タグ記号の変換
       $str =~ s/</&lt;/g;
       $str =~ s/>/&gt;/g;

      タグの削除
       $str =~ s/<.*?>/g;
        ? により、最短の > に一致させます。