17種常用正規表示式

2021-04-09 05:21:37 字數 3573 閱讀 2976

文字格式: /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; idxm[idx].groups.count; i++)

code

...}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 ()

6. private static var pattern:regexp = /=([^/s^/>]+)/g;

public static function coverimg4html(img:string):string

{var res:string = decodeuri(img);

res = res.replace(pattern, "='$1'");

var pos:int = res.indexof("img");

res = "

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