Regular Expression オブジェクト
更新 : 2007 年 11 月
正規表現パターンとそのパターンの適用方法を識別するフラグを含むオブジェクトです。
// The explicit constructor for a Regular Expression object.
function RegExp(pattern : String [,flags : String])
function RegExp(regexObj : System.Text.RegularExpressions.Regex)
// The implicit constructor for a Regular Expression object.
/pattern/[flags]
引数
pattern
必ず指定します。使用する正規表現パターン。構文 1 では、パターンは文字列である必要があります。構文 2 では、パターンを "/" 文字で区切ります。flags
省略可能です。構文 1 では、フラグは文字列で指定する必要があります。構文 2 では、フラグ文字は最後の "/" のすぐ後に指定する必要があります。指定できるフラグは、次のとおりです。g (引数 pattern に指定したパターンと一致する文字列をすべて検索するグローバル検索)
i (大文字小文字を区別しない)
m (複数行検索)
regexObj
必ず指定します。使用する正規表現パターンを含む Regex オブジェクト。
解説
Regular Expression オブジェクトを RegExp オブジェクトと混同しないようにしてください。名前は似ていますが、これらの 2 つのオブジェクトには明確な違いがあります。Regular Expression オブジェクトのプロパティには、特定の Regular Expression のインスタンスによる一致に関する情報だけが格納されるのに対し、グローバルな RegExp オブジェクトのプロパティには一致が検出されるたびに更新される情報が格納されます。
Regular Expression オブジェクトは、文字を組み合わせた文字列検索 (正規表現による検索) に使用するパターンを格納します。Regular Expression オブジェクトが作成されると、このオブジェクトが文字列のメソッドに渡されるか、または文字列が Regular Expression オブジェクトのいずれかのメソッドに渡されます。最後に実行した検索に関する情報が、グローバルな RegExp オブジェクトに格納されます。
ユーザー入力から文字列を取得する場合のように、検索文字列が頻繁に変更されたり、コーディングの時点では検索文字列がわからないときには、構文 1 を使用します。検索文字列があらかじめわかっている場合は、構文 2 を使用します。
JScript では、引数 pattern に指定したパターンは、使用前に内部形式にコンパイルされます。構文 1 の場合は、使用する直前、または compile メソッドが呼び出されたときにパターンがコンパイルされます。構文 2 の場合は、スクリプトが読み込まれたときにパターンがコンパイルされます。
メモ : |
---|
JScript 内では、Regular Expression オブジェクトは .NET Framework の System.Text.RegularExpressions.Regex データ型と相互運用されます。ただし、Regular Expression オブジェクトがサポートされるのは JScript だけです。このオブジェクトは .NET Framework 型から派生していないため、他の共通言語仕様 (CLS: Common Language Specification) 言語では使用できません。したがって、CLS 準拠のメソッドのパラメータと戻り値の型を型の注釈で指定する場合は、Regular Expression オブジェクトではなく System.Text.RegularExpressions.Regex 型を使用してください。ただし、パラメータや戻り値の型以外の識別子では、Regular Expression オブジェクトを使用して型の注釈を指定できます。詳細については、「CLS 準拠コードの記述」を参照してください。 |
使用例
次のコードは、Regular Expression オブジェクトの使用例です。関連するフラグを持つ正規表現パターンを含むオブジェクト re1 と re2 が作成されます。この場合、Regular Expression オブジェクトの結果は match メソッドによって使用されます。
var s : String = "The rain in Spain falls mainly in the plain";
// Create regular expression object using Syntax 1.
var re1 : RegExp = new RegExp("Spain","i");
// Create regular expression object using Syntax 2.
var re2 : RegExp = /IN/i;
// Find a match within string s.
print(s.match(re1));
print(s.match(re2));
このスクリプトの出力は次のようになります。
Spain
in
必要条件
プロパティおよびメソッド
Regular Expression オブジェクトのプロパティとメソッド