我們來看一下正則表達式元字符的具體應用。
/fo+/ 因為上述正則表達式中包含“+”元字符,表示可以與目標對象中的 “fool”, “fo”, 或者 “football”等在字母f后面連續出現一個或多個字母o的字符串相匹配。
/eg*/ 因為上述正則表達式中包含“*”元字符,表示可以與目標對象中的 “easy”, “ego”, 或者 “egg”等在字母e后面連續出現零個或多個字母g的字符串相匹配。
/Wil?/ 因為上述正則表達式中包含“?”元字符,表示可以與目標對象中的 “Win”, 或者 “Wilson”,等在字母i后面連續出現零個或一個字母l的字符串相匹配。
除了元字符之外,用戶還可以精確指定模式在匹配對象中出現的頻率。例如,
/jim{2,6}/ 上述正則表達式規定字符m可以在匹配對象中連續出現2-6次,因此,上述正則表達式可以同jimmy或jimmmmmy等字符串相匹配。
在對如何使用正則表達式有了初步了解之后,我們來看一下其它幾個重要的元字符的使用方式。
s:用于匹配單個空格符,包括tab鍵和換行符;
S:用于匹配除單個空格符之外的所有字符;
d:用于匹配從0到9的數字;
w:用于匹配字母,數字或下劃線字符;
W:用于匹配所有與w不匹配的字符;
. :用于匹配除換行符之外的所有字符。
(說明:我們可以把s和S以及w和W看作互為逆運算)
下面,我們就通過實例看一下如何在正則表達式中使用上述元字符。
/s+/
上述正則表達式可以用于匹配目標對象中的一個或多個空格字符。
/d000/
"^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
正則表達式--驗證手機號碼:13[0-9]{9}
實現手機號前帶86或是+86的情況:^((+86)|(86))?(13)d{9}$
電話號碼與手機號碼同時驗證:(^(d{3,4}-)?d{7,8})$|(13[0-9]{9})
提取信息中的網絡鏈接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(w|/|/|.)+('|"| *|>)?
提取信息中的郵件地址:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
提取信息中的圖片鏈接:(s|S)(r|R)(c|C) *= *('|")?(w|/|/|.)+('|"| *|>)?
提取信息中的IP地址:(d+).(d+).(d+).(d+)
提取信息中的中國手機號碼:(86)*0*13d{9}
提取信息中的中國固定電話號碼:((d{3,4})|d{3,4}-|s)?d{8}
提取信息中的中國電話號碼(包括移動和固定電話):((d{3,4})|d{3,4}-|s)?d{7,14}
提取信息中的中國郵政編碼:[1-9]{1}(d+){5}
提取信息中的中國身份證號碼:d{18}|d{15}
提取信息中的整數:d+
提取信息中的浮點數(即小數):(-?d*).?d+
提取信息中的任何數字 :(-?d*)(.d+)?
提取信息中的中文字符串:[u4e00-u9fa5]*
提取信息中的雙字節字符串 (漢字):[^x00-xff]*
新聞熱點
疑難解答