正規表現の基礎

正規表現の使用の概要

正規表現は、文字のパターンを表します。一般的に、正規表現はテキスト値が特定のパターンに準拠していることを確認する場合 (ユーザーが入力した電話番号の桁数が適切であることを確認する場合など) や、特定のパターンと一致するテキストを置き換える場合に使用されます。

正規表現には、単純なものもあります。たとえば、特定のストリングが "ABC" に一致するかどうかを確認する場合や、ストリング内に出現するすべての "ABC" を別のテキストに置き換える場合を考えてください。その場合、文字 A、B、C が順に連続して出現するパターンを定義する次の正規表現を使用できます。

/ABC/

正規表現リテラルを囲む区切り文字はスラッシュ (/) です。

正規表現では、複雑なパターンや解読困難なパターンが使用されることもあります。たとえば、次の正規表現は有効な電子メールアドレスに一致します。

/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/

最も一般的には、ストリング内のパターンを検索し、文字を置換するために正規表現を使用します。そうした場合は、正規表現オブジェクトを作成し、それをパラメータとしていずれかの String クラスのメソッドで使用します。正規表現のパラメータを指定できる String クラスのメソッドとしては、match()replace() search()、および split() があります。これらのメソッドの詳細については、ストリング内のパターンの検索とサブストリングの置換を参照してください。

RegExp クラスには、test() メソッドおよび exec() メソッドが含まれます。詳細については、ストリングに対して正規表現を使用するメソッドを参照してください。

一般的な正規表現のタスク

次に、この章で詳細を説明する正規表現の一般的な用途をいくつか示します。:

重要な概念と用語

次の参照リストに、この章で使用する重要な用語を示します。

章内の例の使用

この章の進行に合わせて、サンプルコードリストを実際にテストすることができます。この章のコードリストは主に正規表現のパターンで構成されているので、サンプルをテストするには、次の手順が必要です。

  1. 新しい Flash ドキュメントを作成します。
  2. キーフレームを選択して、[アクション] パネルを開きます。
  3. 次のような RegExp (正規表現) 変数を作成します。
    var pattern:RegExp = /ABC/;
    
  4. サンプルからパターンをコピーして、RegExp 変数の値として代入します。たとえば、前のコード行では、等号の右側のコード部分 (セミコロンを含まない) がパターンです (/ABC/)。
  5. 正規表現をテストするのに適したストリングを含む、String 変数を作成します。たとえば、正規表現を作成してメールアドレスが有効かどうかをテストする場合は、有効なメールアドレスと無効なメールアドレスを含んだ String 変数を作成します。
    var goodEmail:String = "bob@example.com";
    var badEmail:String = "5@$2.99";
    
  6. String 変数をテストして正規表現パターンに一致するかどうかを判別するコード行を追加します。これらの値を画面に出力するには、trace() 関数を使用するか、ステージ上のテキストフィールドに書き込みます。
    trace(goodEmail, ":", pattern.test(goodEmail));
    trace(badEmail, ":", pattern.test(badEmail));
    

    たとえば、pattern に有効なメールアドレスの正規表現パターンが定義されている場合、前のコード行は、このテキストを [出力] パネルに書き込みます。

    bob@example.com is valid: true
    5@$2.99 is valid: false
    

    テキストフィールドインスタンスに値を書き込むことにより、または trace() 関数を使用して値を [出力] パネルに出力することにより値をテストする方法の詳細については、章内のコード例のテスト を参照してください。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000111.html