パッケージ | トップレベル |
クラス | public dynamic class RegExp |
継承 | RegExp Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
new RegExp()
コンストラクターを使用するか、RegExp リテラルを変数に割り当てることによって、新しい RegExp オブジェクトを作成することができます。
var pattern1:RegExp = new RegExp("test-\\d", "i"); var pattern2:RegExp = /test-\d/i;
詳細については、『ActionScript 3.0 開発ガイド』の「正規表現の使用」を参照してください。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
dotall : Boolean [読み取り専用]
正規表現パターン内のドット文字(.)と改行文字を一致させるかどうかを指定します。 | RegExp | ||
extended : Boolean [読み取り専用]
正規表現に拡張モードを使用するかどうかを指定します。 | RegExp | ||
global : Boolean [読み取り専用]
正規表現にグローバル照合を使用するかどうかを指定します。 | RegExp | ||
ignoreCase : Boolean [読み取り専用]
正規表現で大文字と小文字の区別を無視するかどうかを指定します。 | RegExp | ||
lastIndex : Number
ストリング内で次回の検索を開始するインデックス位置を指定します。 | RegExp | ||
multiline : Boolean [読み取り専用]
m(multiline)フラグを設定するかどうかを指定します。 | RegExp | ||
source : String [読み取り専用]
正規表現のパターン部分を指定します。 | RegExp |
メソッド | 定義元 | ||
---|---|---|---|
2 つのストリングから正規表現を作成することができます。 | RegExp | ||
指定されたストリング str について、正規表現を検索します。 | RegExp | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
指定されたストリング str 内に正規表現と一致するサブストリングがあるかどうかをテストします。 | RegExp | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
dotall | プロパティ |
dotall:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
正規表現パターン内のドット文字(.)と改行文字を一致させるかどうかを指定します。 正規表現の作成時に s
フラグを使用して、dotall = true
に設定します。
実装
public function get dotall():Boolean
例 ( この例の使用方法 )
s
(dotall
)フラグを設定した場合の効果を示しています。
var str:String = "<p>Hello\n" + "again</p>" + "<p>Hello</p>"; var pattern:RegExp = /<p>.*?<\/p>/; trace(pattern.dotall) // false trace(pattern.exec(str)); // <p>Hello</p> pattern = /<p>.*?<\/p>/s; trace(pattern.dotall) // true trace(pattern.exec(str));
extended | プロパティ |
extended:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
正規表現に拡張モードを使用するかどうかを指定します。RegExp オブジェクトが拡張モードの場合、コンストラクターストリング内の空白文字は無視されます。これはコンストラクターの可読性を高めることを目的とします。
正規表現の作成時に x
フラグを使用して、extended = true
に設定します。
実装
public function get extended():Boolean
例 ( この例の使用方法 )
x
フラグが使用されているため、ストリング内の空白文字は無視されます。
var rePhonePattern1:RegExp = /\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; var str:String = "The phone number is (415)555-1212."; trace(rePhonePattern1.extended) // false trace(rePhonePattern1.exec(str)); // (415)555-1212 var rePhonePattern2:RegExp = / \d{3}-\d{3}-\d{4} | \( \d{3} \) \ ? \d{3}-\d{4} /x; trace(rePhonePattern2.extended) // true trace(rePhonePattern2.exec(str)); // (415)555-1212
global | プロパティ |
global:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
正規表現にグローバル照合を使用するかどうかを指定します。global == true
の場合、一致するものが 1 つ見つかった後に lastIndex
プロパティが設定されます。次回、照合が要求されたときには、正規表現エンジンはストリングの lastIndex
の位置から照合を開始します。正規表現の作成時に g
フラグを使用して、global
を true
に設定します
実装
public function get global():Boolean
例 ( この例の使用方法 )
g
(global
)フラグを exec()
メソッドに設定した場合の効果を示しています。
var pattern:RegExp = /foo\d/; var str:String = "foo1 foo2"; trace(pattern.global); // false trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 0 trace(pattern.exec(str)); // foo1 pattern = /foo\d/g; trace(pattern.global); // true trace(pattern.exec(str)); // foo1 trace(pattern.lastIndex); // 4 trace(pattern.exec(str)); // foo2
ignoreCase | プロパティ |
ignoreCase:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
正規表現で大文字と小文字の区別を無視するかどうかを指定します。正規表現の作成時に i
フラグを使用して、ignoreCase = true
に設定します。
実装
public function get ignoreCase():Boolean
例 ( この例の使用方法 )
i
(ignoreCase
)フラグを設定した場合の効果について示しています。
var pattern:RegExp = /bob/; var str:String = "Bob bob"; trace(pattern.ignoreCase); // false trace(pattern.exec(str)); // bob pattern = /bob/i; trace(pattern.ignoreCase); // true trace(pattern.exec(str)); // Bob
lastIndex | プロパティ |
lastIndex:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ストリング内で次回の検索を開始するインデックス位置を指定します。このプロパティは、RegExp クラスの exec()
メソッドと test()
メソッドに影響します。ただし、String クラスの match()
メソッド、replace()
メソッド、および search()
メソッドは、lastIndex
プロパティを無視し、すべての検索をストリングの先頭から開始します。
exec()
メソッドまたは test()
メソッドで一致するものが見つかり、正規表現で g
(global
)フラグが true
に設定されている場合、メソッドは自動的に lastIndex
プロパティを、最後に一致したサブストリング内の最後の文字の次にある文字のインデックス位置に設定します。g
(global
)フラグが false
に設定されている場合、メソッドは lastIndex
プロパティを設定しません。
lastIndex
プロパティを設定することで、ストリング内で正規表現による検索を開始する位置を調整できます。
実装
public function get lastIndex():Number
public function set lastIndex(value:Number):void
例 ( この例の使用方法 )
lastIndex
プロパティを設定した場合の効果を示しています。また、exec()
メソッドを g
(global
)フラグが設定された正規表現で呼び出した後に、そのプロパティがどのように更新されるかを示しています。
var pattern:RegExp = /\w\d/g; var str:String = "a1 b2 c3 d4"; pattern.lastIndex = 2; trace(pattern.exec(str)); // b2 trace(pattern.lastIndex); // 5 trace(pattern.exec(str)); // c3 trace(pattern.lastIndex); // 8 trace(pattern.exec(str)); // d4 trace(pattern.lastIndex); // 11 trace(pattern.exec(str)); // null
multiline | プロパティ |
multiline:Boolean
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
m
(multiline
)フラグを設定するかどうかを指定します。設定する場合、正規表現内のキャレット(^
)とドル記号($
)は改行文字の前と後に一致します。正規表現の作成時に m
フラグを使用して、multiline = true
に設定します。
実装
public function get multiline():Boolean
例 ( この例の使用方法 )
m
(multiline
)フラグを設定した場合の効果について示しています。
var pattern:RegExp = /^bob/; var str:String = "foo\n" + "bob"; trace(pattern.multiline); // false trace(pattern.exec(str)); // null pattern = /^bob/m; trace(pattern.multiline); // true trace(pattern.exec(str)); // bob
source | プロパティ |
source:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
正規表現のパターン部分を指定します。
実装
public function get source():String
例 ( この例の使用方法 )
source
パラメーターを出力します。
var re1:RegExp = /aabb/gi; trace (re1.source); // aabb var re2:RegExp = new RegExp("x+y*", "i"); trace(re2.source); // x+y*
RegExp | () | コンストラクター |
public function RegExp(re:String, flags:String)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
2 つのストリングから正規表現を作成することができます。1 つのストリングは正規表現のパターンを定義し、もう 1 つのストリングは正規表現で使用されるフラグを定義します。
パラメーターre:String — 正規表現のパターンです。コンストラクターストリングとも言います。これは正規表現のメインとなる部分です。つまり、"/" で囲まれる部分です。
注意:
| |
flags:String — 正規表現のモディファイアです。これには次のものが含まれます。
|
exec | () | メソッド |
AS3 function exec(str:String):Object
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定されたストリング str
について、正規表現を検索します。
正規表現に g
(global
)フラグが設定されていない場合、ストリングの先頭(インデックス位置 0)から検索が開始され、正規表現の lastIndex
プロパティは無視されます。
正規表現に g
(global
)フラグが設定されている場合、正規表現の lastIndex
プロパティで指定されたインデックス位置から検索が開始されます。検索でサブストリングが一致すると、lastIndex
プロパティは一致したサブストリングの最後の位置に変更されます。
パラメーター
str:String — 検索するストリングです。
|
Object — 一致が見つからない場合は null 、それ以外の場合は、次に示すプロパティを持つオブジェクトを返します。
|
関連する API エレメント
例 ( この例の使用方法 )
g
(global
)フラグを設定しない場合、exec()
を使用して、ストリング内で最初に一致するものを検索することができます。
var myPattern:RegExp = /(\w*)sh(\w*)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); trace(result);
result
オブジェクトは次のように設定されます。
-
result[0]
は"She"
に設定されます(完全一致)。 -
result[1]
は空のストリングに設定されます(括弧指定されたグループの最初の一致)。 -
result[2]
は"e"
に設定されます(括弧指定されたグループの 2 番目の一致)。 -
result.index
は 0 に設定されます。 -
result.input
は入力ストリング"She sells seashells by the seashore"
に設定されます。
次の例では、正規表現に g
(global
)フラグが設定されているため、exec()
を繰り返し使用して、一致するものを複数検索することができます。
var myPattern:RegExp = /(\w*)sh(\w*)/ig; var str:String = "She sells seashells by the seashore"; var result:Object = myPattern.exec(str); while (result != null) { trace ( result.index, "\t", result); result = myPattern.exec(str); }
このコードの出力は、次のようになります。
0 She,,e
10 seashells,sea,ells
27 seashore,sea,ore
test | () | メソッド |
AS3 function test(str:String):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定されたストリング str
内に正規表現と一致するサブストリングがあるかどうかをテストします。
正規表現に g
(global
)フラグが設定されていない場合、ストリングの先頭(インデックス位置 0)から検索が開始され、正規表現の lastIndex
プロパティは無視されます。
正規表現に g
(global
)フラグが設定されている場合、正規表現の lastIndex
プロパティで指定されたインデックス位置から検索が開始されます。検索でサブストリングが一致すると、lastIndex
プロパティは一致したサブストリングの最後の位置に変更されます。
パラメーター
str:String — テストするストリングです。
|
Boolean — 一致が存在する場合は true 、それ以外の場合は false を返します。
|
例 ( この例の使用方法 )
test()
メソッドを、g
(global
)フラグが設定された正規表現で使用する方法を示しています。
var re1:RegExp = /\w/g; var str:String = "a b c"; trace (re1.lastIndex); // 0 trace (re1.test(str)); // true trace (re1.lastIndex); // 1 trace (re1.test(str)); // true trace (re1.lastIndex); // 3 trace (re1.test(str)); // true trace (re1.lastIndex); // 5 trace (re1.test(str)); // false
informalizeGreeting()
メソッドは、大文字小文字に関係なく Hello
という語が見つかると、この語を単純に Hi
に置き換えます。また、ストリング内の名前から姓を削除します。ただし、指定されたパターンに名前が一致する場合です。validateEmail()
と validatePhoneNumber()
メソッドは、渡されたストリングのパターンが有効な電子メールアドレスまたは特定の電話番号のパターンと一致するかどうかをチェックし、その結果に従ってブール値を返します。
package { import flash.display.Sprite; public class RegExpExample extends Sprite { public function RegExpExample() { var formalGreeting:String = "Hello, John Smith."; trace(informalizeGreeting(formalGreeting)); // Hi, John. var validEmail:String = "name@domain.com"; trace(validateEmail(validEmail)); // true var invalidEmail:String = "foo"; trace(validateEmail(invalidEmail)); // false var validPhoneNumber:String = "415-555-1212"; trace(validatePhoneNumber(validPhoneNumber)); // true var invalidPhoneNumber:String = "312-867-530999"; trace(validatePhoneNumber(invalidPhoneNumber)); // false } private function informalizeGreeting(str:String):String { var pattern:RegExp = new RegExp("hello, (\\w+) \\w+", "i"); return str.replace(pattern, "Hi, $1"); } private function validateEmail(str:String):Boolean { var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } private function validatePhoneNumber(str:String):Boolean { var pattern:RegExp = /^\d{3}-\d{3}-\d{4}$/; var result:Object = pattern.exec(str); if(result == null) { return false; } return true; } } }
Tue Jun 12 2018, 10:34 AM Z