熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

關於正則表達式

2022-06-13   來源: .NET編程 
\
  將下一個字符標記為一個特殊字符或一個原義字符或一個 後向引用或一個八進制轉義符例如n 匹配字符 n\n 匹配一個換行符序列 \\ 匹配 \\( 則匹配 (

^
  匹配輸入字符串的開始位置如果設置了 RegExp 對象的 Multiline 屬性^ 也匹配 \n\r 之後的位置

$
  匹配輸入字符串的結束位置如果設置了RegExp 對象的 Multiline 屬性$ 也匹配 \n\r 之前的位置

*
  匹配前面的子表達式零次或多次例如zo* 能匹配 z 以及 zoo * 等價於{}

+
  匹配前面的子表達式一次或多次例如zo+ 能匹配 zo 以及 zoo但不能匹配 z+ 等價於 {}

?
  匹配前面的子表達式零次或一次例如do(es)? 可以匹配 dodoes 中的do ? 等價於 {}

{n}
  n 是一個非負整數匹配確定的 n 次例如o{} 不能匹配 Bob 中的 o但是能匹配 food 中的兩個 o

{n}
  n 是一個非負整數至少匹配n 次例如o{} 不能匹配 Bob 中的 o但能匹配 foooood 中的所有 oo{} 等價於 o+o{} 則等價於 o*

{nm}
  m 和 n 均為非負整數其中n <= m最少匹配 n 次且最多匹配 m 次 o{} 將匹配 fooooood 中的前三個 oo{} 等價於 o?請注意在逗號和兩個數之間不能有空格

?
  當該字符緊跟在任何一個其他限制符 (* + ? {n} {n} {nm}) 後面時匹配模式是非貪婪的非貪婪模式盡可能少的匹配所搜索的字符串而默認的貪婪模式則盡可能多的匹配所搜索的字符串例如對於字符串 ooooo+? 將匹配單個 oo+ 將匹配所有 o


  匹配除 \n 之外的任何單個字符要匹配包括 \n 在內的任何字符請使用象 [\n] 的模式

(pattern)
  匹配pattern 並獲取這一匹配所獲取的匹配可以從產生的 Matches 集合得到在VBScript 中使用 SubMatches 集合在Visual Basic Scripting Edition 中則使用 $…$ 屬性要匹配圓括號字符請使用 \(\)

(?:pattern)
  匹配 pattern 但不獲取匹配結果也就是說這是一個非獲取匹配不進行存儲供以後使用這在使用 字符 (|) 來組合一個模式的各個部分是很有用例如 industr(?:y|ies) 就是一個比 industry|industries 更簡略的表達式

(?=pattern)
  正向預查在任何匹配 pattern 的字符串開始處匹配查找字符串這是一個非獲取匹配也就是說該匹配不需要獲取供以後使用例如 Windows (?=||NT|) 能匹配 Windows 中的 Windows 但不能匹配 Windows 中的 Windows預查不消耗字符也就是說在一個匹配發生後在最後一次匹配之後立即開始下一次匹配的搜索而不是從包含預查的字符之後開始

(?!pattern)
  負向預查在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串開始處匹配查找字符串這是一個非獲取匹配也就是說該匹配不需要獲取供以後使用例如Windows (?!||NT|) 能匹配 Windows 中的 Windows但不能匹配 Windows 中的 Windows預查不消耗字符也就是說在一個匹配發生後在最後一次匹配之後立即開始下一次匹配的搜索而不是從包含預查的字符之後開始

x|y
  匹配 x 或 y例如z|food 能匹配 zfood(z|f)ood 則匹配 zoodfood

[xyz]
  字符集合匹配所包含的任意一個字符例如 [abc] 可以匹配 plain 中的 a

[^xyz]
  負值字符集合匹配未包含的任意字符例如 [^abc] 可以匹配 plain 中的p

[az]
  字符范圍匹配指定范圍內的任意字符例如[az] 可以匹配 az 范圍內的任意小寫字母字符

[^az]
  負值字符范圍匹配任何不在指定范圍內的任意字符例如[^az] 可以匹配任何不在 az 范圍內的任意字符

\b
  匹配一個單詞邊界也就是指單詞和空格間的位置例如 er\b 可以匹配never 中的 er但不能匹配 verb 中的 er

\B
  匹配非單詞邊界er\B 能匹配 verb 中的 er但不能匹配 never 中的 er

\cx
  匹配由x指明的控制字符例如 \cM 匹配一個 ControlM 或回車符 x 的值必須為 AZ 或 az 之一否則將 c 視為一個原義的 c 字符

\d
  匹配一個數字字符等價於 []

\D
  匹配一個非數字字符等價於 [^]

\f
  匹配一個換頁符等價於 \xc 和 \cL

\n
  匹配一個換行符等價於 \xa 和 \cJ

\r
  匹配一個回車符等價於 \xd 和 \cM

\s
  匹配任何空白字符包括空格制表符換頁符等等等價於 [ \f\n\r\t\v]

\S
  匹配任何非空白字符等價於 [^ \f\n\r\t\v]

\t
  匹配一個制表符等價於 \x 和 \cI

\v
  匹配一個垂直制表符等價於 \xb 和 \cK

\w
  匹配包括下劃線的任何單詞字符等價於[AZaz_]

\W
  匹配任何非單詞字符等價於 [^AZaz_]

\xn
  匹配 n其中 n 為十六進制轉義值十六進制轉義值必須為確定的兩個數字長例如 \x 匹配 A\x 則等價於 \x & 正則表達式中可以使用 ASCII 編碼

\num
  匹配 num其中 num 是一個正整數對所獲取的匹配的引用例如()\ 匹配兩個連續的相同字符

\n
  標識一個八進制轉義值或一個後向引用如果 \n 之前至少 n 個獲取的子表達式則 n 為後向引用否則如果 n 為八進制數字 ()則 n 為一個八進制轉義值

\nm
  標識一個八進制轉義值或一個後向引用如果 \nm 之前至少有is preceded by at least nm 個獲取得子表達式則 nm 為後向引用如果 \nm 之前至少有 n 個獲取則 n 為一個後跟文字 m 的後向引用如果前面的條件都不滿足若 n 和 m 均為八進制數字 ()則 \nm 將匹配八進制轉義值 nm

\nml
  如果 n 為八進制數字 ()且 m 和 l 均為八進制數字 ()則匹配八進制轉義值 nml

\un
  匹配 n其中 n 是一個用四個十六進制數字表示的 Unicode 字符例如 \uA 匹配版權符號 (?)
From:http://tw.wingwit.com/Article/program/net/201311/12680.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.