規則運算式選項

您可以利用會影響行為的選項來修改規則運算式模式。規則運算式選項可以透過下列兩種基本方法之一來設定:可以在 Regex(pattern, options) 建構函式的 options 參數中指定,其中 optionsRegexOptions 列舉值的位元的 OR 組合;或者可以在規則運算式模式中使用內嵌 (?imnsx-imnsx:) 群組建構或 (?imnsx-imnsx) 其他建構來設定。

在內嵌選項建構中,選項或一組選項之前的減號 (-) 會關閉這些選項。例如,內嵌建構 (?ix-ms) 會開啟 IgnoreCaseIgnorePatternWhiteSpace 選項,關閉 MultilineSingleline 選項。所有規則運算式選項預設是關閉的。

下表列出 RegexOptions 列舉型別 (Enumeration) 的成員以及對等的內嵌選項字元。請注意,RightToLeftCompiled 選項只能套用到運算式做為一個整體,而且不允許內嵌 (它們只能在 Regex 建構函式的 options 參數中指定)。NoneECMAScript 選項不允許內嵌。

RegexOption 成員 內嵌字元 描述

None

N/A

指定無選項設定。

IgnoreCase

i

指定區分大小寫的比對。

Multiline

m

指定多行模式。變更 ^$ 的意義,使它們分別在任何一行的開頭和結尾作比對,而不只是整個字串的開頭和結尾。

ExplicitCapture

n

指定唯一有效的擷取是 (?<name>) 格式的明確命名群組或編號群組。這允許括號充當非擷取群組,而避免運算式 (?:) 的語法不便。

Compiled

N/A

指定規則運算式要編譯為組件 (Assembly)。為規則運算式產生 Microsoft 中繼語言 (Microsoft Intermediate Language,MSIL) 程式碼;在啟動時間費用上產出較快的執行。

Singleline

s

指定單行模式。變更句號字元 (.) 的意義,使它符合一切字元 (而不是 \n 之外的一切字元)。

IgnorePatternWhitespace

x

指定未逸出的泛空白字元 (White Space) 是從模式中排除的,並且讓註解後面跟著數字符號 (#) (如需逸出的泛空白字元清單,請參閱逸出字元)。請注意,在字元類別內永遠不會將泛空白字元排除。

RightToLeft

N/A

指定搜尋是由右至左,而非由左至右。使用這個選項的規則運算式會移到起始位置的左邊,而非移向右邊 (因此,起始位置應該被指定為字串的結尾,而非字串的開頭)。這個選項無法在中途指定,以避免規則運算式產生無窮迴圈 (Loop) 的可能性。不過,Lookbehind 建構 (?<) 提供相似的選項,可用來做為子運算式 (Subexpression)。

RightToLeft 只會變更搜尋方向。不會反轉所搜尋的子字串。lookaheadlookbehind 判斷提示 (Assertion) 不會變更:Lookahead 會找尋右邊,Lookbehind 則找尋左邊。

ECMAScript

N/A

指定 ECMAScript 相容行為是為運算式啟用。這個選項只能配合 IgnoreCaseMultiline 旗標使用。將 ECMAScript 與任何其他旗標一起使用將導致例外狀況 (Exception)。

CultureInvariant

N/A

指定忽略語言中的文化特性差異。如需詳細資訊,請參閱在 RegularExpressions 命名空間中執行不區分文化特性作業

請參閱

其他資源

規則運算式語言項目