VB.net 雜項(xiàng)結(jié)構(gòu)

2020-08-19 17:26 更新

正則表達(dá)式中的雜項(xiàng)結(jié)構(gòu)

.NET 中的正則表達(dá)式包括三個(gè)其他語(yǔ)言構(gòu)造。 其中一個(gè)使你可以在正則表達(dá)式模式中間啟用或禁用特定匹配選項(xiàng)。 其余兩個(gè)使你可以在正則表達(dá)式中包含注釋。

內(nèi)聯(lián)選項(xiàng)

可以使用語(yǔ)法為正則表達(dá)式的一部分設(shè)置或禁用特定模式匹配選項(xiàng)

(?imnsx-imnsx)

在問(wèn)號(hào)后列出要啟用的選項(xiàng),在負(fù)號(hào)后列出要禁用的選項(xiàng)。 下表對(duì)每個(gè)選項(xiàng)進(jìn)行了描述。

內(nèi)聯(lián)選項(xiàng)
選項(xiàng)描述
i不區(qū)分大小寫(xiě)的匹配。
m多行模式。
n僅顯式捕獲。 (圓括號(hào)不充當(dāng)捕獲組。)
s單行模式。
x忽略未轉(zhuǎn)義空格,并允許 x 模式注釋。

內(nèi)聯(lián)注釋

(?# comment) 構(gòu)造可用于在正則表達(dá)式中添加內(nèi)聯(lián)注釋 。 正則表達(dá)式引擎在模式匹配中不使用注釋的任何部分,盡管注釋仍包含在 Regex.ToString 方法返回的字符串中。 該注釋在第一個(gè)右括號(hào)處終止。

下面的示例重復(fù)了上一部分的示例中的第一個(gè)正則表達(dá)式模式。 它將兩個(gè)內(nèi)聯(lián)注釋添加到該正則表達(dá)式,以指示比較是否區(qū)分大小寫(xiě)。 正則表達(dá)式模式 \b((?# case-sensitive comparison)D\w+)\s(?ixn)((?#case-insensitive comparison)d\w+)\b 按以下方式定義。

內(nèi)聯(lián)注釋
模式描述
\b在單詞邊界處開(kāi)始。
(?# case-sensitive comparison)注釋。 它不影響模式匹配行為。
(D\w+)匹配后跟一個(gè)或多個(gè)單詞字符的大寫(xiě)“D”。 這是第一個(gè)捕獲組。
\s與空白字符匹配。
(?ixn)從此處起,使比較不區(qū)分大小寫(xiě),僅進(jìn)行顯式捕獲,以及忽略正則表達(dá)式模式中的空格。
(?#case-insensitive comparison)注釋。 它不影響模式匹配行為。
(d\w+)匹配后跟一個(gè)或多個(gè)單詞字符的大寫(xiě)或小寫(xiě)“d”。 這是第二個(gè)捕獲組。
\b與字邊界匹配。


行尾注釋

數(shù)字符號(hào) (#) 標(biāo)記 x 模式注釋,即從正則表達(dá)式模式末尾的未轉(zhuǎn)義 # 字符開(kāi)始一直延續(xù)到行末。 若要使用此構(gòu)造,必須啟用 x 選項(xiàng)(通過(guò)內(nèi)聯(lián)選項(xiàng)),或在實(shí)例化 Regex 對(duì)象或調(diào)用靜態(tài) Regex 方法時(shí)向 option 參數(shù)提供 RegexOptions.IgnorePatternWhitespace 值。

下面的示例說(shuō)明行尾注釋構(gòu)造。 它確定字符串是否為包含至少一個(gè)格式項(xiàng)的復(fù)合格式字符串。 下表描述了正則表達(dá)式模式中的構(gòu)造:

\{\d+(,-*\d+)*(\:\w{1,4}?)*\}(?x) # Looks for a composite format item.

行尾注釋
模式描述
\{匹配左大括號(hào)。
\d+匹配一個(gè)或多個(gè)十進(jìn)制數(shù)字。
(,-*\d+)*與零個(gè)或一個(gè)后跟一個(gè)可選負(fù)號(hào)、再后跟一個(gè)或多個(gè)十進(jìn)制數(shù)字的逗號(hào)匹配。
(\:\w{1,4}?)*與零個(gè)或一個(gè)后跟一到四個(gè)(但盡可能少)空白字符的冒號(hào)匹配。
\}匹配右大括號(hào)。
(?x)啟用忽略模式空格選項(xiàng),以便識(shí)別行尾注釋。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)