■Windows版Perlの細道・けもの道

■ナビゲータ

[南北館(最初のメニュー)]

  1. [Windows版Perlの細道・けもの道]
    1. [1.準備編]
    2. [2.基本編]
      1. [2-1.基本処理]
      2. [2-2.キーブレイク処理]
      3. [2-3.マッチング(照合)処理]
      4. [2-4.ソート(並べ替え)処理]
      5. [2-5.パターンマッチ処理]
        1. [2-5-1.いろいろな正規表現(その1)]
        2. [2-5-2.いろいろな正規表現(その2)]
        3. [2-5-3.いろいろな正規表現(その3)]
    3. [3.応用編]
    4. [スクリプトと入力データのサンプル]
rubyではどう処理する?
同じことをrubyではこうしています。

2-5.パターンマッチ処理

2-5-1.いろいろな正規表現(その1)

正規表現とは、さまざまな文字列を汎用的な形式で表すもので、パターンマッチ処理でのパターンを指定するための記述方法です。

もともとはUNIXで使われていましたが、その後、Perlで大幅に拡張され、他のさまざまなソフトウェアでも使われるようになり、今日に至っています。

ここではさまざまな正規表現について、具体例を交えながら、解説していきます。

  1. [・・・]

    ・・・の中の1文字を表す文字集合です。たとえば、[abc]はabcのうちのどれか1文字を表します。また、[0-9]は0から9までのどれか1文字、つまり、数字を表します。

  2. [^・・・]

    ・・・の中の1文字以外を表す文字集合です。たとえば、[^abc]はabc以外のどれか1文字を表します。また、[^0-9]は0から9まで以外のどれか1文字、つまり、数字以外を表します。

    以下、具体例を交えながら、解説していきます。

    /[12]/    数字の「1」か「2」にマッチします。
    /[1-6]/   数字の1から6の1文字にマッチします。
    
    /[0-9]/   数字の1文字にマッチします。
    /[0-9][0-9][0-9]/   数字の3文字にマッチします。
    /[a-z]/   英小文字の1文字にマッチします。
    /[a-z][a-z]/   英小文字の2文字にマッチします。
    /[A-Z]/   英大文字の1文字にマッチします。
    /[a-zA-Z0-9]/  英字と数字との1文字にマッチします。
    
    /[-6]/    ハイフンまたは6にマッチします。
    
    /[^0-9]/  数字以外の1文字にマッチします。
    
    /[0x21-0x7E]/  表示可能な1文字にマッチします。
    /[0x20-0x7E]/  印字可能な1文字にマッチします。
       
  3. \b

  4. 単語境界にマッチします。

  5. \b

  6. 単語境界以外にマッチします。

  7. \w

  8. 英数字と_(アンダーバー)にマッチします。[a-zA-Z_]と指定したのと同じ内容です。

  9. \W

  10. 英数字と_(アンダーバー)以外にマッチします。[^a-zA-Z_]と指定したのと同じ内容です。

  11. \s

  12. 空白文字にマッチします。具体的には、スペースや改行、タブなどを表します。[ \t\n\f\r]と指定したのと同じ内容です。

  13. \S

  14. 空白文字以外にマッチします。具体的には、スペースや改行、タブなど以外を表します。[^ \t\n\f\r]と指定したのと同じ内容です。

  15. \d

  16. 0〜9にマッチします。[0-9]と同じです。(Unicodeとして処理した場合、全角文字の数字にもマッチします。この点が[0-9]と異なる点です)

  17. \D

  18. 0〜9以外にマッチします。[^0-9]と同じ

    /national\b/  nationalやintenationalにマッチしますが、
                  internationalizationにマッチしない。
    /\bJapan\B/   Japaneseにマッチしますが、Japanにはマッチしません。
    /\bJapan\b/   Japanにマッチしますが、Japaneseにはマッチしません。
    
    /\w{3}/  英数字3文字にマッチします
             (実際には3文字以上あれば、3文字あることになるので、マッチしてしまいます)。
    /^\w{3}$/  英数字3文字だけの場合にマッチします。上記の文字クラスの中でも使えます。
    /[\w@#&]/  英数字と_(アンダーバー)、@、#、&のいずれか1文字にマッチします。
       


    その他、制御文字として以下のものがあります。

  19. \n

  20. 改行コード(0x0A)にマッチします。

  21. \t

  22. タブコード(0x09)にマッチします。

  23. \a

  24. ベル(0x07)にマッチします。

  25. \b

  26. バックスペース(0x08)にマッチします。

  27. \e

  28. エスケープ(0x1B)にマッチします。

  29. \f

  30. フォームフィード(0x0C)にマッチします。

  31. \r

  32. 復帰(キャリッジ・リターン)(0x0D)にマッチします。




Copyright (c) 2010-2013 Mitsuo Minagawa, All rights reserved.