首頁  >  文章  >  php教程  >  shell 正規表示式詳細整理

shell 正規表示式詳細整理

高洛峰
高洛峰原創
2016-12-26 16:55:171225瀏覽

shell常用正規表示式

 「^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  
/^(d{2}|d{4})-((0([1-9]{1}) )|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日  
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0 |1]))/(d{2}|d{4})$/   // 月/日/年  
「^([w-.]+)@(([[0-9]{1,3 }.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4 }|[0-9]{1,3})(]?)$”   //Emil  
/^((+?[0-9]{2,4}-[0-9]{3,4} -)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?$/     //電話號碼  
「^( d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]) .(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5 ])$”   //IP位址  

符合中文字元的正規表示式:[u4e00-u9fa5]  
符合雙位元組字元(包括漢字在內):[^x00-xff]  
配對空行的正字節式:n[s| ]*r  
符合HTML標記的正規表示式:/.*1>|/  
符合首尾空格的正規表示式:( ^s*)|(s*$)  
符合Email位址的正規表示式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*  
符合網址URL的正規表示式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S *)?$  
符合帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$  
匹配國內電話號碼:(d{3}-|d{4}-)?(d{8}|d{7})?  
匹配騰訊QQ號:^[1-9]*[1-9][ 0-9]*$  

元字元及其在正規表示式情境中的行為: 

將下一個字元標記為一個特殊字元、或一個原義字元、或一個後向引用、或一個八進位轉義符。 
 
 
^ 符合輸入字串的起始位置。如果設定了 RegExp 物件的Multiline 屬性,^ 也符合 'n' 或 'r' 之後的位置。 
 
 
$ 符合輸入字串的結束位置。如果設定了 RegExp 物件的Multiline 屬性,$ 也符合 'n' 或 'r' 之前的位置。 
 
 
* 將前面的子運算式配對零次或多次。 
 
 
+ 將前面的子表達式配對一次或多次。 + 等價於 {1,}。 
 
 
? 將前面的子運算式配對零次或一次。 ? 等價於 {0,1}。 
 
 
{n} n 是一個非負整數,配對確定的n 次。 
 
 
{n,} n 為非負整數,至少符合n 次。 
 
 
{n,m} m 和 n 均為非負整數,其中n  
 
? 當該字元緊接在任何其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。 
 
 
. 符合「n」 以外的任何單一字元。若要符合包括 'n' 在內的任何字符,請使用象 '[.n]' 的模式。  
(pattern) 符合pattern 並取得此配對。 
 
 
(?:pattern) 匹配pattern 但不獲取配對結果,也就是說這是一個非獲取匹配,不進行儲存以供以後使用。 
 
 
(?=pattern) 正向預查,在任何符合 pattern 的字串開始處符合尋找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。 
 
 
(?!pattern) 負向預查,與(?=pattern)作用相反 
 
 
x|y 配對 x 或 y。 
 
 
[xyz] 字元集合。 
 
 
[^xyz] 負值字元集合。 
 
 
[a-z] 字元範圍,符合指定範圍內的任意字元。 
 
 
[^a-z] 負值字元範圍,符合任何不在指定範圍內的任意字元。 
 
 
b 配對一個單字邊界,也就是指單字和空格之間的位置。 
 
 
B 配對非單字邊界。 
 
 
cx 符合x指明的控製字元。 
 
 
d 符合一個數字字元。等價於 [0-9]。 
 
 
D 符合一個非數字字元。等價於 [^0-9]。 
 
 
f 配對一個換頁符號。等價於 x0c 和 cL。 
 
 
n 配對一個換行符。等價於 x0a 和 cJ。 
 
 
r 配對一個回車符。等價於 x0d 和 cM。 
 
 
s 符合任何空白字符,包括空格、製表符、換頁符等等。等價於[ fnrtv]。 
 
 
S 符合任何非空白字元。等價於 [^ fnrtv]。 
 
 
t 配對一個製表符。等價於 x09 和 cI。 
 
 
v 符合垂直製表符。等價於 x0b 和 cK。 
 
 
w 符合包含底線的任何單字字元。等價於'[A-Za-z0-9_]'。 
 
 
W 符合任何非單字字元。等價於 '[^A-Za-z0-9_]'。 
 
 
xn 符合 n,其中 n 為十六進位轉義值。十六進制轉義值必須為確定的兩個數字長。 
 
 
num 符合 num,其中num為正整數。對所獲取的匹配的引用。 
 
 
n 標識一個八進位轉義值或一個後向引用。如果 n 之前至少 n 個取得的子表達式,則 n 為後向引用。否則,如果 n 為八進制數字 (0-7),則 n 為一個八進制轉義值。 
 
 
nm 標識一個八進位轉義值或一個後向引用。如果 nm 之前至少有is preceded by at least 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字元。 
 
 

符合中文字元的正規表示式: [u4e00-u9fa5] 
 
 
符合雙位元組字元(包括漢字在內):[^x00-xff] 
 
語]*r 
 
 
符合HTML標記的正規表示式:/.*1>|/ 
 
 
符合首尾空格的正規表示式:(^s *)|(s*$) 
 
 
符合Email位址的正規表示式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 

 
符合網址URL的正規表示式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)? 
 
 

利用正規表示表達式限制網頁表單裡的文字方塊輸入內容: 


 用正規表示式限制只能輸入中文:onkeyup=”value=value.replace(/[^u4E00-u9FA5]/g,”)」 onbeforepaste=” clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,”))” 

 
 
用正規表示式限制只能輸入全角字元: onkeyup=” value=value.replace(/[^uFF00-uFFFF]/g,”)” onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g ,”))” 
 
 
用正規表示式限制只能輸入數字:onkeyup=”value=value.replace(/[^d]/g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData .getData('text').replace(/[^d]/g,”))” 
 
 
用正規表示式限制只能輸入數字和英文:onkeyup=”value=value.replace(/[W] /g,”) “onbeforepaste=”clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,”))” 
  

常用正規表示式 

  

常用正規表示式
 
 
符合中文字元的正規表示式:[u4e00-u9fa5] 
 
 
符合雙位元組字元(包括漢字在內):[^x00-xff] s| ]*r 
 
 
符合HTML標記的正規表示式:/.*1>|/ 
 
 
符合首尾空格的正規表示式:( ^s*)|(s*$) 
 
 
符合IP位址的正規表示式:/(d+).(d+).(d+).(d+)/g // 
 
 
符合Email位址的正規表示式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)* 
 
 
符合網址URL的正規表示式:http://(/[ w-]+.)+[w-]+(/[w- ./?%&=]*)? 
 
 


sql語句:^(select|drop|delete|create|update|insert). *$ 

 
 
1、非負整數:^d+$ 
 
 
2、正整數:^[0-9]*[1-9][0-9]*$ 
^
 (-d+)|(0+))$ 
 
 
4、負整數:^-[0-9]*[1-9][0-9]*$ 
 
 
5、整數:^-?d+ $ 
 
 
6、非負浮點數:^d+(.d+)?$ 
 
 
7、正浮點數:^((0-9)+.[0-9]*[1-9][0 -9]*)|([0-9]*[1-9][0-9]*.[0-9]+)| ([0-9]*[1-9][0-9] *))$ 
 
 
8、非正浮點數:^((-d+.d+)?)|(0+(.0+)?))$ 
 
 
9、負浮點數:^(-( 
 
9、負浮點數:^(-(-(-(-(-) (正浮點數正規式)))$ 
 
 
10、英文字串:^[A-Za-z]+$ 
 
 
11、英文大寫串:^[A-Z]+$ 
 
11、英文大寫字串:^[A-Z]+$ 
小寫串:^[a-z]+$ 
 
 
13、英文字元數字串:^[A-Za-z0-9]+$ 
 
 
14、英數字加底線串:^ww+$5 E-mail地址:^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$ 
 
 
16、URL:^[a-zA-Z ]+://(w+(-w+)*)(.(w+(-w+)*))*(?s*)?$  
或:^http://[A-Za-z0-9]+ .[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^& lt;>""])*$ 
 
 
17、郵遞區號: ^[1-9]d{5}$ 
 
 
18、中文:^[u0391-uFFE5]+$ 
 
 
19、電話號碼:^(((d{2,33))|(d{}))|(d{}))| 3}-))?((0d{2,3})|0d{2,3}-)?[1-9] d{6,7}(-d{1,4})?$ 
 
 
20、手機號碼:^(((d{2,3}))|(d{3}-))?13d{9}$ 
 
 
21、雙字節字元(包括漢字在內):^x00 -xff 
 
22、符合首尾空格:(^s*)|(s*$)(像vbscript的trim函數) 
 
23、符合HTML標記:.*1>|  
 
24、符合空白行:n[s| ]*r 
 
25、擷取資訊中的網路連結:(h|H)(r|R)(e|E)(f |F) *= *('|”)?(w|\|/|.)+('|”| *|>)? 
 
26、提取資訊中的郵件地址:w+([-+.] w+)*@w+([-.]w+)*.w+([-.]w+)* 
 
27、提取資訊中的圖片連結:(s|S)(r|R)(c|C) * = *('|”)?(w|\|/|.)+('|”| *|>)? 
 
28、提取資訊中的IP位址:(d+).(d+).(d+) .(d+) 
 
29、擷取資訊中的中國手機號碼:(86)*0*13d{9} 
 
30、擷取資訊中的中國固定電話號碼:((d{3,4})|d {3,4}-|s)?d{8} 
 
31、擷取資訊中的中國電話號碼(包括行動和固定電話):((d{3,4})|d{3,4}- |s)?d{7,14} 
 
32、提取資訊中的中國郵遞區號:[1-9]{1}(d+){5} 
 
33、擷取資訊中的浮點數(即小數) :(-?d*).?d+ 
 
34、提取資訊中的任何數字:(-?d*)(.d+)? 
 
35、IP:(d+).(d+).(d+). (d+) 
 
36、電話區號:/^0d{2,3}$/ 
 
37、騰訊QQ號:^[1-9]*[1-9][0-9]*$ 
 
38 、帳號(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
 
39、中文、英文、數字及底線:^[u4e00-u9fa5_a-zA-Z0-9]+$

感謝閱讀此文,希望能幫助大家,謝謝大家對本站的支持!

更多shell 正規表示式詳細整理相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn