c#:
c#中驗證正規表示式的類為system.text.regularexpressions.regex
簡單的匹配方法為ismatch(4個過載方法)
正規表示式語法:
一、匹配單個字元
[ ]:從中選擇乙個字元匹配
如:單詞字元([ae])、非單詞字元([!?,;@#$*])、字母範圍([a-z])、數字範圍([0-9])、^在[ ]中為排除某些字元(如[^a]匹配除a以外的任何字元)
eg.正規表示式[ae]ffect
可匹配字串 affect,effect
注意:要在字元類中匹配連字元,那麼把連字符號作為第乙個字元列出即可。
二、特殊匹配字元
\t:匹配製表符 \r:匹配硬回車符 \n:匹配換行符
.:匹配任何除了\n以外的字元(\.則匹配該字元本身)
\w:匹配任何單詞字元(任何字母或數字)
\w:匹配任何非單詞字元(除了字母和數字以外的任何字元)
\s:匹配任何空白字元(包括空格、換行、製表符等)
\s:匹配任何非空白字元(除了空格、換行、製表符等的任何字元)
\d:匹配任何數字字元(0~9的數字)
\d:匹配任何非數字字元(除了0~9以外的任何字元)
^:匹配字串的開頭(或者多行模式下行的開頭)。
$:匹配字串的結尾,或者是字串結尾「\n」之前的最後乙個字元,或者是多行模式中的行結尾。
\a:匹配字串的開頭(忽略多行模式) \z:匹配字串的結尾或字串結尾「\n」之前的最後乙個字元(忽略多行模式)。
\z:匹配字串的結尾。 \g:匹配當前搜尋開始的位置。
\b:匹配單詞的邊界。 \b:匹配單詞的非邊界。
注意:1、\a和\z在確保字串所包含的是某個表示式,而不是其他內容時很用。
eg.正規表示式\asophia\z
可匹配字串要 sophia(不含任何額外的字元、換行符或者空白。)
2、可以使用\b匹配單詞的邊界
eg.正規表示式\blet\b
可匹配字串 let
不可匹配字串letter,hamlet
三、匹配二選一
|:匹配二選一
eg.正規表示式col(o|ou)r
可匹配字串 color,colour
注意:\b(bill|ted)和\bbill|ted是不同的。
後者可以匹配malted
四、量詞匹配
*:匹配0次或多次 +:匹配1次或多次?:匹配0次或1次:恰好匹配n次
:至少匹配n次:至少匹配n次,至多匹配m次
eg.正規表示式brothers?
可匹配字串 brother,brothers
eg.正規表示式\bp\d
可匹配字串 \b以p開頭,且後跟3~5個數字結尾
注意:也可以把量詞與()一起使用,以便把該量詞應用到整個字母序列。
eg.正規表示式(the)?schoolisbeautiful.
可匹配字串 schoolisbeautiful,theschoolisbeautiful.
五、貪婪量詞
識別正規表示式和貪婪 有些量詞是貪婪的(greedy).他們會盡可能多的匹配字元。
如量詞*匹配0個或多個字元。假設要匹配字串中任何html標籤。你可能會用如下正規表示式:
<.*>
現有字串aquantifiercanbegreedy
結果<.*>把quantifiercanbegreedy都匹配上了。
要解決該問題,需要與量詞一起使用乙個特殊的非貪婪字元「?」,因此表示式變化如下:
<.*?>
這樣就可以正確匹配、、、。
六、捕獲和反向引用
():用來捕獲其中的字串
\數字:用編號來引用
eg.正規表示式 (\w)(\w)\2\1
可匹配字串abba(回文)
注意:1、反向引用用來匹配html標籤非常有效如<(\w+)>可以匹配等類似格式的標籤。
常用的c#正規表示式:
"^\d+$" //非負整數(正整數 + 0)
"^[0-9]*[1-9][0-9]*$" //正整數
"^((-\d+)|(0+))$" //非正整數(負整數 + 0)
"^-[0-9]*[1-9][0-9]*$" //負整數
"^-?\d+$" //整數
"^\d+(\.\d+)?$" //非負浮點數(正浮點數 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮點數
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$" //非正浮點數(負浮點數 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //負浮點數
"^(-?\d+)(\.\d+)?$" //浮點數
"^[a-za-z]+$" //由26個英文本母組成的字串
"^[a-z]+$" //由26個英文本母的大寫組成的字串
"^[a-z]+$" //由26個英文本母的小寫組成的字串
"^[a-za-z0-9]+$" //由數字和26個英文本母組成的字串
"^\w+$" //由數字、26個英文本母或者下劃線組成的字串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email位址
"^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$" //url
/^(d|d)-((0([1-9]))|(1[1|2]))-(([0-2]([1-9]))|(3[0|1]))$/ // 年-月-日
/^((0([1-9]))|(1[1|2]))/(([0-2]([1-9]))|(3[0|1]))/(d|d)$/ // 月/日/年
"^([w-.]+)@(([[0-9].[0-9].[0-9].)|(([w-]+.)+))([a-za-z]|[0-9])(]?)$" //emil
"(d+-)?(d-?d|d-?d|^d)(-d+)?" //**號碼
"^(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5]).(d|1dd|2[0-4]d|25[0-5])$" //ip位址
正規表示式簡單總結
正規表示式,又稱規則表示式。英語 regular expression,在 中常簡寫為regex regexp或re 由一類特殊字元及文字字元所編寫的模式,其中有些字元 元字元 不表示字元字面意義,而表示控制或通配的功能。程式支援 grep,sed,awk,vim,less,nginx,varnis...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
C 正規表示式總結
1.獲取html標籤中的所有文字 string s regex.match scon,groups 1 value s 標題文字 string s1 regex.match scon,value s1 替換 system.text.regularexpressions.regex.replace s...