說明
文字格式: /pattern/flags
正規表示式建構函式: new regexp("pattern"[,"flags"]);
引數說明:
pattern -- 乙個正規表示式文字
flags -- 如果存在,將是以下值:
g: 全域性匹配
i: 忽略大小寫
gi: 以上組合
[注意] 文字格式的引數不用引號,而在用建構函式時的引數需要引號。如:/ab+c/i new regexp("ab+c","i")是實現一樣的功能。在建構函式中,一些特殊字元需要進行轉意(在特殊字元前加"/")。如:re = new regexp("//w+")
正規表示式中的特殊字元
字元 含意
/ 做為轉意,即通常在"/"後面的字元不按原來意**釋,如/b/匹配字元"b",當b前面加了反斜桿後//b/,轉意為匹配乙個單詞的邊界。
-或-
對正規表示式功能字元的還原,如"*"匹配它前面元字元0次或多次,/a*/將匹配a,aa,aaa,加了"/"後,/a/*/將只匹配"a*"。
^ 匹配乙個輸入或一行的開頭,/^a/匹配"an a",而不匹配"an a"
$ 匹配乙個輸入或一行的結尾,/a$/匹配"an a",而不匹配"an a"
* 匹配前面元字元0次或多次,/ba*/將匹配b,ba,baa,baaa
+ 匹配前面元字元1次或多次,/ba*/將匹配ba,baa,baaa
? 匹配前面元字元0次或1次,/ba*/將匹配b,ba
(x) 匹配x儲存x在名為$1...$9的變數中
x|y 匹配x或y
精確匹配n次
匹配n次以上
匹配n-m次
[xyz] 字符集(character set),匹配這個集合中的任一乙個字元(或元字元)
[^xyz] 不匹配這個集合中的任何乙個字元
[/b] 匹配乙個退格符
/b 匹配乙個單詞的邊界
/b 匹配乙個單詞的非邊界
/cx 這兒,x是乙個控制符,//cm/匹配ctrl-m
/d 匹配乙個字數字元,//d/ = /[0-9]/
/d 匹配乙個非字數字元,//d/ = /[^0-9]/
/n 匹配乙個換行符
/r 匹配乙個回車符
/s 匹配乙個空白字元,包括/n,/r,/f,/t,/v等
/s 匹配乙個非空白字元,等於/[^/n/f/r/t/v]/
/t 匹配乙個製表符
/v 匹配乙個重直製表符
/w 匹配乙個可以組成單詞的字元(alphanumeric,這是我的意譯,含數字),包括下劃線,如[/w]匹配"$5.98"中的5,等於[a-za-z0-9]
/w 匹配乙個不可以組成單詞的字元,如[/w]匹配"$5.98"中的$,等於[^a-za-z0-9]。 附:
perl中 s/[^[:alnum:]]//g s的意思是替換
---------------------------------------------
常用正規表示式
"^/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
使用範例
1.替換
string targeturl = "/dir/regex.html&tt=wer";
targeturl = new regex("^/dir/(.+).html&(.+)", regexoptions.ignorecase).replace(targeturl, "/dir.aspx?id=$1&$2", 1);
//targeturl = "/dir.aspx?id=regex&tt=wer"
//$0 == "/dir/regex.html&tt=wer";
2.匹配其中match的group0是整個匹配字串:
group0='one car'
capture0='one car', position=2
另外一種匹配用法是使用regex.maches,大體跟上面相同,變化如下
matchcollection m = r.matches(text);
for (int idx=0; idxcode...
m = m.nextmatch();}}
result...3. 刪除html元素 public static string striphtmlxmltags (string content) ...4. 刪除多餘空格(僅空格)
searchterms = regex.replace(searchterms, " ", " ", regexoptions.ignorecase | regexoptions.compiled | regexoptions.multiline);
5. trim
string.prototype.trim = function () {
正規表示式 正規表示式 總結
非負整數 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...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...