規則運算式物件
更新: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 物件,包含要使用的規則運算式模式。
備註
請不要混淆規則運算式物件與全域 RegExp 物件。雖然它們看起來很類似,但是很容易分辨。規則運算式物件的屬性 (Property) 只包含某個規則運算式執行個體的相關資訊,而全域 RegExp 物件的屬性則包含每次比對發生時持續更新之相關資訊。
規則運算式物件儲存用來搜尋字元組合之字串的模式。規則運算式物件建立之後,會傳遞至字串方法,或字串會傳遞至規則運算式物件的方法。最近執行過之搜尋的相關資訊會儲存在全域 RegExp 物件中。
當搜尋字串經常變更或為未知字串 (例如衍生自使用者輸入的字串) 時,請使用語法 1。當您事先知道搜尋字串時,請使用語法 2。
在 JScript 中,pattern 引數在使用前會先編譯成內部格式。對於語法 1,pattern 是在使用之前或呼叫 compile 方法時編譯。對於語法 2,pattern 是在指令碼載入時編譯。
注意事項: |
---|
規則運算式物件在 JScript 內,可以與 .NET Framework System.Text.RegularExpressions.Regex 資料型別相互操作。但是其他 Common Language Specification (CLS) 語言無法使用規則運算式物件,因為只有 JScript 提供這個物件;.NET Framework 型別不衍生此物件。因此,當您為符合 CLS 標準方法的參數和傳回型別加註型別時,請務必使用 System.Text.RegularExpressions.Regex 資料型別而不要使用非規則運算式物件。但是,您可以使用規則運算式物件,為參數或傳回型別以外的識別項加註型別。如需詳細資訊,請參閱撰寫符合 CLS 標準的程式碼。 |
範例
以下範例說明如何使用規則運算式物件的方法。會建立 re1 和 re2 物件,並且包含具相關旗標的規則運算式模式。在這種情況下,產生的規則運算式物件會供 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