17種常用正規表示式

2021-08-27 01:42:14 字數 3269 閱讀 2691

說明

文字格式: /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; idx]+>", "", regexoptions.ignorecase | regexoptions.compiled);

}4. 刪除多餘空格(僅空格)

searchterms = regex.replace(searchterms, " ", " ", regexoptions.ignorecase | regexoptions.compiled | regexoptions.multiline);

5. trim

string.prototype.trim = function () 6. private static var pattern:regexp = /=([^\s^\>]+)/g;public static function coverimg4html(img:string):string

17種常用正規表示式

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 非正浮點數 負浮點數 ...

17種常用正規表示式

文字格式 pattern flags 正規表示式建構函式 new regexp pattern flags 引數說明 pattern 乙個正規表示式文字 flags 如果存在,將是以下值 g 全域性匹配 i 忽略大小寫 gi 以上組合 注意 文字格式的引數不用引號,而在用建構函式時的引數需要引號。如...

17種正規表示式

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 非正浮點數 負浮點數 ...