正則表達(dá)式語言_第1頁
正則表達(dá)式語言_第2頁
正則表達(dá)式語言_第3頁
正則表達(dá)式語言_第4頁
正則表達(dá)式語言_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

正則表達(dá)式語言-快速參考.NETFramework4.5其他版本MicrosoftQQBSCPQ?邛。MicrosoftQQBSCPQ?邛。.NETFramework4.NETFramework3.5.NETFramework2.014(共16)對本文的評價(jià)是有幫助-評價(jià)此主題正則表達(dá)式是正則表達(dá)式引擎嘗試匹配輸入文本的一種模式。模式由一個或多個字符文本、運(yùn)算符或構(gòu)造組成。有關(guān)簡單介紹,請參見.NETFramework正則表達(dá)式此快速參考中的每一節(jié)都列出了可用于定義正則表達(dá)式的字符、運(yùn)算符和構(gòu)造的一種特定類別。字符轉(zhuǎn)義字符類定位點(diǎn)分組構(gòu)造限定符反向引用構(gòu)造替換構(gòu)造替換正則表達(dá)式選項(xiàng)其他構(gòu)造字符轉(zhuǎn)義正則表達(dá)式中的反斜杠字符(\)指示其后跟的字符是特殊字符(如下表所示),或應(yīng)按原義解釋該字符。有關(guān)更多信息,請參見正則表達(dá)式中的字符轉(zhuǎn)義。轉(zhuǎn)義字符描述模式匹配\a與報(bào)警(bell)符\u0007匹配。\a“Error!”+"\u0007”中的“\u0007"\b在字符類中,與退格鍵\u0008匹配。[\b]{3,}“\b\b\b\b”中的“\b\b\b\b”\t與制表符\u0009匹配。(\w+)\t“item1\titem2\t”中的“item1\t”和“item2\t”

\r與回車符\u000D匹配。(\r與換行符\n不是等效的。)\r\n(\w+)“\r\nTheseare\ntwolines.”中的“\r\nThese”\v與垂直制表符\u000B匹配。[\v]{2,}“\v\v\v”中的“\v\v\v”\f與換頁符\u000C匹配。[\f]{2,}“\f\f\f”中的“\f\f\f”\n與換行符\u000A匹配。\r\n(\w+)“\r\nTheseare\ntwolines.”中的“\r\nThese”\e與轉(zhuǎn)義符\u001B匹配。\e“\x001B”中的“\x001B”\nnn使用八進(jìn)制表示形式指定一個字符(nnn由二到三位數(shù)字組成)。\w\040\w“abcd”中的“ab”和“cd”\xnn使用十六進(jìn)制表示形式指定字符(nn恰好由兩位數(shù)字組成)。\w\x20\w“abcd”中的“ab”和“cd”\cX\cx匹配X或x指定的ASCII控件字符,其中X或x是控件字符的字母。\cC“\x0003”中的“\x0003”(Ctrl-C)\unnnn使用十六進(jìn)制表示形式匹配一個Unicode字符(由nnnn表示的四位數(shù))。\w\u0020\w“abcd”中的“ab”和“cd”\在后面帶有不識別為本主題的此表和其他表中的轉(zhuǎn)義符的字符時,與該字符匹配。例如,\*與\x2A相同,而\.與\x2E相同。這允許正則表達(dá)式引擎區(qū)分語言元素(如*或?)和字符(用\*或\?表示)。\d+[\+-x\*]\d+\d+[\+-x\*\d+“(2+2)*3*9”中的“2+2”和“3*9”返回頁首字符類字符類與一組字符中的任何一個字符匹配。字符類包括下表中列出的語言元素。有關(guān)更多信息,請參見正則表達(dá)式中的字符類字符類描述模式匹配[character_group]匹配character_group中的任何單個字符。默認(rèn)情況下,匹配區(qū)分大小寫。[ae]“gray”中的“a”“l(fā)ane”中的“a”和“e”

[Acharacter-group]非:與不在character_group中的任何單個字符匹配。默認(rèn)情況下,character_group中的字符區(qū)分大小寫。[Aaei]“reign”中的“r”、“g”和“n”[first-last]字符范圍:與從first到last的范圍中的任何單個字符匹配。[AZ]“AB123”中的“A”和“B”.通配符:與除\n之外的任何單個字符匹配。若要匹配原意句點(diǎn)字符(.或\u002E),您必須在該字符前面加上轉(zhuǎn)義符(\?)。a.e“nave”中的“ave”“water”中的“ate”\p{name}與name指定的Unicode通用類別或命名塊中的任何單個字符匹配。\p{Lu}\p{IsCyrillic}“CityLights”中的“C”和“L”“^*em”中的“八”和“水”\P{name}與不在name指定的Unicode通用類別或命名塊中的任何單個字符匹配。\P{Lu}\P{IsCyrillic}“City”中的“i”、“t”和“y”“^*em”中的“e”和“m”\w與任何單詞字符匹配。\w“IDA1.3”中的“I”、“D”、“A”、“1”和“3”\W與任何非單詞字符匹配。\W“IDA1.3”中的“”、“.”\s與任何空白字符匹配。\w\s“IDA1.3”中的“D”\S與任何非空白字符匹配。\s\S“int__ctr”中的“一”\d與任何十進(jìn)制數(shù)字匹配。\d“4=IV”中的“4”\D匹配不是十進(jìn)制數(shù)的任意字符。\D“4=IV”中的“”、“=”、“”、“I”和“V”返回頁首定位點(diǎn)

定位點(diǎn)或原子零寬度斷言會使匹配成功或失敗,具體取決于字符串中的當(dāng)前位置,但它們不會使引擎在字符串中前進(jìn)或使用字符。下表中列出的元字符是定位點(diǎn)。有關(guān)更多信息,請參見正則表達(dá)式中的定位點(diǎn)。斷言描述模式匹配A匹配必須從字符串或一行的開頭開始。A\d(3}“901”“901-”$匹配必須出現(xiàn)在字符串的末尾或出現(xiàn)在行或字符串末尾的\n之前。-\d{3}$“-901-333”中的“-333”\A匹配必須出現(xiàn)在字符串的開頭。\A\d{3}“901”“901-”\Z匹配必須出現(xiàn)在字符串的末尾或出現(xiàn)在字符串末尾的\n之前。-\d{3}\Z“-901-333”中的“-333”\z匹配必須出現(xiàn)在字符串的末尾。-\d{3}\z“-901-333”中的“-333”\G匹配必須出現(xiàn)在上一個匹配結(jié)束的地方。\G\(\d\)“(1)(3)(5)[7](9)”中的“(1)”、“(3)”、“⑸”\b匹配必須出現(xiàn)在\w(字母數(shù)字)和\W(非字母數(shù)字)字符之間的邊界上。\b\w+\s\w+\b“themthemethemthem”中的“them比em”、“themtheme”\B匹配不得出現(xiàn)在\b邊界上。\Bend\w*\b“endsendsendurelender”中的“ends”和“ender”返回頁首分組構(gòu)造分組構(gòu)造描述了正則表達(dá)式的子表達(dá)式,通常用于捕獲輸入字符串的子字符串。分組構(gòu)造包括下表中列出的語言元素。有關(guān)更多信息,請參見正則表達(dá)式中的分組構(gòu)造分組構(gòu)造描述模式匹配(subexpression)捕獲匹配的子表達(dá)式并將其分配到一個從零開始的序號中。(\w)\1“deep”中的“ee”

?<name>subexpression將匹配的子表達(dá)式捕獲到一個命名組中。(?<double>\w)\k<double>“deep”中的“ee”?<namel-name2>subexpression定義平衡組定義。有關(guān)更多信息,請參見正則表達(dá)式中的分組構(gòu)造中的“平衡組定義”部分。(((?'Open'\()[八\(\)]*)+((?'Close-Open'\))[A\(\)]*)+)*(?(Open)(?!))$“3+2人((1-3)*(3-1))”中的“((1-3)*(3-1))”?:subexpression定義非捕獲組。Write(?:Line)?“Console.WriteLine(),,中的“WriteLine”?imnsx-imnsx:subexpression應(yīng)用或禁用subexpression中指定的選項(xiàng)。有關(guān)更多信息,請參見正則表達(dá)式選項(xiàng)。A\d{2}(?i:\w+)\b“A12xlA12XLa12xl”中的“A12xl”和“A12XL”?=subexpression零寬度正預(yù)測先行斷言。\w+(?=\.)“Heis.Thedogran.Thesunisout.”中的“is”、“ran”和“out”?!subexpression零寬度負(fù)預(yù)測先行斷言。\b(?!un)\w+\b“unsuresureunityused”中的“sure”和“used”?<=subexpression零寬度正回顧后發(fā)斷言。(?<=19)\d{2}\b“18511999195019052003”中的“99”、“50”和“05”?<!subexpression零寬度負(fù)回顧后發(fā)斷言。(?<!19)\d{2}\b“18511999195019052003”中的“51”和“03”?>subexpression非回溯(也稱為“貪婪”)子表達(dá)式。[13579](?>A+B+)“1ABB3ABBC5AB5AC”中的“1ABB”、“3ABB”和“5AB”返回頁首限定符限定符指定在輸入字符串中必須存在上一個元素(可以是字符、組或字符類)的多少個實(shí)例才能出現(xiàn)匹配項(xiàng)。限定符包括下表中列出的語言元素。有關(guān)更多信息,請參見正則表達(dá)式中的限定符

限定符描述模式匹配*匹配上一個元素零次或多次。\d*\.\d“.0”,“19.9”和“219.9”+匹配上一個元素一次或多次。"be+"“been”中的“bee”,“bent”中的“be”?匹配前面的元素零次或一次。"rai?n"“ran”和“rain”{n}匹配上一個元素恰好n次。”八d{3}"“1,043.6”中的“,043”,“9,876,543,210”中的“,876”、“,543”和“,210”(n,}匹配上一個元素至少n次。"\d{2,}"“166”,“29”和“1930”{n,m}匹配上一個元素至少n次,但不多于m次。"\d{3,5}”“166”、“17668”“193024”中的“19302”*??匹配上一個元素零次或多次,但次數(shù)盡可能少。\d*?\.\d“.0”,“19.9”和“219.9”+?匹配上一個元素一次或多次,但次數(shù)盡可能少。"be+?"“been”中的“be”,“bent”中的“be”??匹配上一個元素零次或一次,但次數(shù)盡可能少。"rai??n"“ran”和“rain”{n}?匹配前導(dǎo)元素恰好n次。",\d{3}?"“1,043.6”中的“,043”,“9,876,543,210”中的“,876”、“,543”和“,210”{n,匹配上一個元素至少n次,但次數(shù)盡可能"\d“166”,“29”和“1930”

}?少。{2,}?"{n,m}?匹配上一個元素的次數(shù)介于n和m之間,但次數(shù)盡可能少。"\d{3,5}?"“166”、“17668”“193024”中的“193”、“024”返回頁首反向引用構(gòu)造反向引用允許在同一正則表達(dá)式中隨后標(biāo)識以前匹配的子表達(dá)式。下表列出了.NETFramework的正則表達(dá)式支持的反向引用構(gòu)造。有關(guān)更多信息,請參見正則表達(dá)式中的反向引用構(gòu)造。反向引用構(gòu)造描述模式匹配\number后向引用。匹配編號子表達(dá)式的值。(\w)\1“seek”中的“ee”\k<name>命名后向引用。匹配命名表達(dá)式的值。(?<char>\w)\k<char>“seek”中的“ee”返回頁首替換構(gòu)造替換構(gòu)造用于修改正則表達(dá)式以啟用either/or匹配。這些構(gòu)造包括下表中列出的語言元素。有關(guān)更多信息,請參見正則表達(dá)式中的備用構(gòu)造。替換構(gòu)造描述模式匹配I匹配以豎線(|)字符分隔的任何一個元素。th(e|is|at)“thisistheday.”中的“the”和“this””(?(expression)yesIno)如果正則表達(dá)式模式由expression匹配指定,則匹配yes;否則匹配可選no部件。expression被解釋為零寬度斷言。(?(A)A\d{2}\b|\b\d{3}\b)“A10C103910”中的“A10”和“910”(?(name)yes|no)如果name或已命名或已編號的捕獲組具有匹配,則匹配yes;否則匹配可選no。(?<quoted>")?(?(quoted).+?"|\S+\s)“Dogs.jpg"Yiskaplaying.jpg””中的Dogs.jpg和"Yiskaplaying.jpg"返回頁首

替換替換是替換模式中支持的正則表達(dá)式語言元素。有關(guān)更多信息,請參見正則表達(dá)式中的替代。下表中列出的元字符是原子零寬度斷言。字符描述模式替換模式輸入字符串結(jié)果字符串$number替換按組number匹配的子字符串。\b(\w+)(\s)(\w+)\b$3$2$1"onetwo""twoone"${name}替換按命名組name匹配的子字符串。\b(?<word1>\w+)(\s)(?<word2>\w+)\b${word2}${word1}"onetwo""twoone"$$替換字符“$”。\b(\d+)\s?USD$$$1“103USD”“$103”$&替換整個匹配項(xiàng)的一個副本。(\$*(\d*(\.+\d+)?){1})**$&“$1.30”“**$1.30**”$'替換匹配前的輸入字符串的所有文本。B+$'“AABBCC”“AAAACC”$'替換匹配后的輸入字符串的所有文本。B+$'“AABBCC”“AACCCC”$+替換最后捕獲的組。B+(C+)$+“AABBCCDD”AACCDD$_替換整個輸入字符串。B+$_“AABBCC”“AAAABBCCCC”返回頁首正則表達(dá)式選項(xiàng)可以指定控制正則表達(dá)式引擎如何解釋正則表達(dá)式模式的選項(xiàng)。其中的許多選項(xiàng)可以指定為內(nèi)聯(lián)(在正則表達(dá)式模式中)或指定為一個或多個RegexOptions常量。本快速參考列表僅列出內(nèi)聯(lián)選項(xiàng)。有關(guān)內(nèi)聯(lián)和RegexOptions選項(xiàng)的更多信息,請參見文章正則表達(dá)式選項(xiàng)可以通過兩種方式指定內(nèi)聯(lián)選項(xiàng):使用雜項(xiàng)構(gòu)造(?imnsx-imnsx),可以用選項(xiàng)或選項(xiàng)組前的減號(-)關(guān)閉這些選項(xiàng)。例如,(?i-mn)啟用不區(qū)分大小寫的匹配(i),關(guān)閉多行模式(m)并關(guān)閉未命名的組捕獲(n)。該選項(xiàng)在選項(xiàng)定義的點(diǎn)適用于此正則表達(dá)式,且持續(xù)有效直到模式結(jié)束或者另一結(jié)構(gòu)反轉(zhuǎn)此選項(xiàng)的點(diǎn)。使用分組構(gòu)造(?imnsx-imnsx:subexpression),可以只定義指定的組的選項(xiàng)。

.NETFramework正則表達(dá)式引擎支持以下內(nèi)聯(lián)選項(xiàng)。選項(xiàng)描述模式匹配i使用不區(qū)分大小寫的匹配。\b(?i)a(?-i)a\w+\b“aardvarkAAAutoaaaAutoAdambreakfast”中的“aardva

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論