C 常用的正規表示式

2021-05-31 21:21:40 字數 4197 閱讀 7551

以下是引用片段:

s=""

s=s.replace(/(.*\/)([^\.]+).*/ig,"$2")

alert(s)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

匹配雙位元組字元(包括漢字在內):[^\x00-\xff]

應用:計算字串的長度(乙個雙位元組字元長度計2,ascii字元計1)

以下是引用片段:

string.prototype.len=function()

匹配空行的正規表示式:\n[\s| ]*\r

匹配html標記的正規表示式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正規表示式:(^\s*)|(\s*$)

以下是引用片段:

string.prototype.trim = function()

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

以下是引用片段:

function ip2v(ip)

else}

不過上面的程式如果不用正規表示式,而直接用split函式來分解可能更簡單,程式如下:

以下是引用片段:

var ip="10.100.20.168"

ip=ip.split(".")

alert("ip值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

符號解釋:\

將下乙個字元標記為乙個特殊字元、或乙個原義字元、或乙個 向後引用、或乙個八進位制轉義符例如,』n』 匹配字元 "n"』\n』 匹配乙個換行符序列 』\\』 匹配 "\" 而 "\(" 則匹配 "("

^匹配輸入字串的開始位置如果設定了 regexp 物件的 multiline 屬性,^ 也匹配 』\n』 或 』\r』 之後的位置

$匹配輸入字串的結束位置如果設定了regexp 物件的 multiline 屬性,$ 也匹配 』\n』 或 』\r』 之前的位置

*匹配前面的子表示式零次或多次例如,zo* 能匹配 "z" 以及 "zoo"* 等價於

+匹配前面的子表示式一次或多次例如,』zo+』 能匹配 "zo" 以及 "zoo",但不能匹配 "z"+ 等價於

?匹配前面的子表示式零次或一次例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" ? 等價於

n 是乙個非負整數匹配確定的 n 次例如,』o』 不能匹配 "bob" 中的 』o』,但是能匹配 "food" 中的兩個 o

n 是乙個非負整數至少匹配n 次例如,』o』 不能匹配 "bob" 中的 』o』,但能匹配 "foooood" 中的所有 o』o』 等價於 』o+』』o』 則等價於 』o*』

m 和 n 均為非負整數,其中n <= m最少匹配 n 次且最多匹配 m 次例如,"o" 將匹配 "fooooood" 中的前三個 o』o』 等價於 』o?』請注意在逗號和兩個數之間不能有空格

?當該字元緊跟在任何乙個其他限制符 (*, +, ?, , , ) 後面時,匹配模式是非貪婪的非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串例如,對於字串 "oooo",』o+?』 將匹配單個 "o",而 』o+』 將匹配所有 』o』

.匹配除 "\n" 之外的任何單個字元要匹配包括 』\n』 在內的任何字元,請使用象 』[.\n]』 的模式

(pattern)

匹配 pattern 並獲取這一匹配所獲取的匹配可以從產生的 matches 集合得到,在vbscript 中使用 submatches 集合,在jscript 中則使用 $0…$9 屬性要匹配圓括號字元,請使用 』\(』 或 』\)』

(?:pattern)

匹配 pattern 但不獲取匹配結果,也就是說這是乙個非獲取匹配,不進行儲存供以後使用這在使用 "或" 字元 (|) 來組合乙個模式的各個部分是很有用例如, 』industr(?:y|ies) 就是乙個比 』industry|industries』 更簡略的表示式

(?=pattern)

正向預查,在任何匹配 pattern 的字串開始處匹配查詢字串這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用例如,』windows (?=95|98|nt|2000)』 能匹配 "windows 2000" 中的 "windows" ,但不能匹配 "windows 3.1" 中的 "windows"預查不消耗字元,也就是說,在乙個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

(?!pattern)

負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用例如』windows (?!95|98|nt|2000)』 能匹配 "windows 3.1" 中的 "windows",但不能匹配 "windows 2000" 中的 "windows"預查不消耗字元,也就是說,在乙個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

x|y匹配 x 或 y例如,』z|food』 能匹配 "z" 或 "food"』(z|f)ood』 則匹配 "zood" 或 "food"

[xyz]

字元集合匹配所包含的任意乙個字元例如, 』[abc]』 可以匹配 "plain" 中的 』a』

[^xyz]

負值字元集合匹配未包含的任意字元例如, 』[^abc]』 可以匹配 "plain" 中的』p』

[a-z]

字元範圍匹配指定範圍內的任意字元例如,』[a-z]』 可以匹配 』a』 到 』z』 範圍內的任意小寫字母字元

[^a-z]

負值字元範圍匹配任何不在指定範圍內的任意字元例如,』[^a-z]』 可以匹配任何不在 』a』 到 』z』 範圍內的任意字元

\b匹配乙個單詞邊界,也就是指單詞和空格間的位置例如, 』er\b』 可以匹配"never" 中的 』er』,但不能匹配 "verb" 中的 』er』

\b匹配非單詞邊界』er\b』 能匹配 "verb" 中的 』er』,但不能匹配 "never" 中的 』er』

\cx

匹配由 x 指明的控制字元例如, \cm 匹配乙個 control-m 或回車符x 的值必須為 a-z 或 a-z 之一否則,將 c 視為乙個原義的 』c』 字元

\d匹配乙個數字字元等價於 [0-9]

\d匹配乙個非數字字元等價於 [^0-9]

\f匹配乙個換頁符等價於 \x0c 和 \cl

\n匹配乙個換行符等價於 \x0a 和 \cj

\r匹配乙個回車符等價於 \x0d 和 \cm

\s匹配任何空白字元,包括空格、製表符、換頁符等等等價於 [ \f\n\r\t\v]

\s匹配任何非空白字元等價於 [^ \f\n\r\t\v]

\t匹配乙個製表符等價於 \x09 和 \ci

\v匹配乙個垂直製表符等價於 \x0b 和 \ck

\w匹配包括下劃線的任何單詞字元等價於』[a-za-z0-9_]』

\w匹配任何非單詞字元等價於 』[^a-za-z0-9_]』

\xn匹配 n,其中 n 為十六進製制轉義值十六進製制轉義值必須為確定的兩個數字長例如,』\x41』 匹配 "a"』\x041』 則等價於 』\x04』 & "1"正規表示式中可以使用 ascii 編碼.

\num

匹配 num,其中 num 是乙個正整數對所獲取的匹配的引用例如,』(.)\1』 匹配兩個連續的相同字元

\n標識乙個八進位制轉義值或乙個向後引用如果 \n 之前至少 n 個獲取的子表示式,則 n 為向後引用否則,如果 n 為八進位制數字 (0-7),則 n 為乙個八進位制轉義值

\nm標識乙個八進位制轉義值或乙個向後引用如果 \nm 之前至少有 nm 個獲得子表示式,則 nm 為向後引用如果 \nm 之前至少有 n 個獲取,則 n 為乙個後跟文字 m 的向後引用如果前面的條件都不滿足,若 n 和 m 均為八進位制數字 (0-7),則 \nm 將匹配八進位制轉義值 nm

\nml

如果 n 為八進位制數字 (0-3),且 m 和 l 均為八進位制數字 (0-7),則匹配八進位制轉義值 nml

\un匹配 n,其中 n 是乙個用四個十六進製制數字表示的 unicode 字元例如, \u00a9 匹配版權符號 (?)

**:

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

C 常用正規表示式

來自 http www.cnblogs.com liping19851014 archive 2008 04 08 1142434.html d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數...

常用C 正規表示式

常用表示式為了能夠更好地理解如何在c 環境中使用規則表示式,我寫出一些對你來說可能有用的規則表示式,這些表示式在其他的環境中都被使用過,希望能夠對你有所幫助。羅馬數字 string p1 m d?c c dm l?x x lc v?i i vx string t1 vii match m1 rege...