文字格式: /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 非正浮點數 負浮點數 ...