一、如何用普通字符和元字符來匹配單個字符
. 可以匹配任何字符
\ 用來對字符進行轉義
二、匹配一組字符
與可以匹配任意字符的單個字符 .字符不同,字符集合只能匹配特定的字符和字符區間。
元字符^:求非
[Na] 字符集 N或a
[0-9] 字符區間 0-9之間的數字
[a-z] 匹配從a-z之間的所有小寫字母
[A-Z] 匹配從A-Z之間的所有大寫字母
[A-Za-z0-9] 可以匹配任何一個字母(無論大小寫)還有數字
[^0-9] 匹配的是任何不是數字的字符
三、使用元字符去匹配特定的字符或字符類型
[\b] 回退(並刪除)一個字符
\f 換頁符
\n 換行符
\r 回車符
\t 製表符
\v 垂直製表符
四、類元字符
• 數字元字符
/d 任何一個數字字符,等價於[0-9]
/D 任何一個非數字字符,等價於[^0-9]
• 字母數字元字符
/w 任何一個字母數字字符(大小寫均可)和下劃線字符,等價於[a-zA-Z0-9_]
/W 任何一個非字母數字或下劃線字符
• 空白字符與非空白字符
/s 匹配任何一個空白字符,等價於[/f/n/r/t/v]
/S 匹配任何一個非空白字符,等價於[^/f/n/r/t/v]
六、匹配十六進制或八進制數值
十六進制數要給出前綴\X
\x0A對應ASCII字符10(換行符),其效果等價於\m
八進制數要給出前綴\0
\011對應SACII字符9(製表符),其效果等價於\t
\cZ將匹配Ctrl-Z
七、重複匹配
• 匹配一個或多個字符:
想要匹配同一個字符(或字符集合)的多次重複,只要簡單的給這個字符(或字符集合)加上一個+作爲後綴就可以了。
[0-9]+ 將匹配一個或多個連續的數字;
+ 匹配一個或多個字符
• 匹配零個或多個字符
* 匹配零個或多個字符
匹配零個或一個字符:
?只能匹配一個字符(或字符集)的零次或一次出現
如https既可以匹配http,也可以匹配https
八、匹配重複次數:
重複次數要用{和}字符來給出----把數值寫在它們之間
• 爲重複匹配次數設定一個精確的值
如:匹配GRB值
用來匹配的文本:<BODY BGCOLOR="<span style="color:#ff9900;">#336633</span>" TEXT="<span style="color:#ff9900;">#FFFFFFF</span>" MARGINWIDTH="0" TOPMARGIN="0"
LEFTMARGIN ="0">
正則表達式:#[[:xdigit:]]{6}或者#[0-9a-fA-F]{6}
[:xdigit:] 用來匹配一個十六進制數
• 爲重複匹配次數設置一個區間
如:匹配日期格式是否正確
用來匹配的文本:
<span style="color:#ff9900;">4/8/03
10.6.2004</span>
2/2/2
<span style="color:#ff9900;">01.01.01</span>
正則表達式:\d{1,2}[.\/]\d{1,2}[.\/]\d{2,4}
• 匹配“至少重複多少次”
給出一個最小的重複次數(但不給出最大值)
{3,} 必須重複三次或更多次
如 :把所有大於或等於100美元的金額找出來
用來匹配的文本:
<span style="color:#ff9900;">1001:$496.80
1002:$1290.69</span>
1003:$26.43
<span style="color:#ff9900;">1004:$613.42</span>
1005:$7.61
<span style="color:#ff9900;">1006:$414.90</span>
1007:$25.00
正則表達式:\d+:\$\d{3,}\.\d{2}
八、位置匹配
位置匹配用來解決在什麼地方進行字符串匹配操作的問題。
• 邊界
(1)、單詞邊界(單詞的開頭、單詞的結束、整個單詞):/b 用來匹配一個單詞的開始或結尾
如果你想要匹配一個完整的單詞,那麼你就要在你要匹配的文本前後都加上/b限定符
(2)、字符串邊界:用來定義字符串邊界的元字符有兩個,一個是用來定義字符串開頭的 ^,另一個是用來定義字符串結尾的$;
如:檢查xml文檔 ^
用來匹配的文本:
<span style="color:#ff9900;"> <?xml version="1.0" encoding="utf-8" ?></span>
<msd1:definitions targetNamespace="http://tips.cf"
xmlns:impl="http://tips.cf" xmlns:inif="http://tips.cf"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
正則表達式:^\s*<\?xml.*\?>
(3)、分行匹配模式:用來啓用分行匹配模式的(?m)記號就是一個能夠改變其他元字符行爲的元字符序列。如果與(?m)配合使用,^和$還將匹配在一個換行符處開頭或結尾的字符串(此時,換行符被視作一個字符串分隔符)。
如:找出代碼中的全部註釋內容
要匹配的文本:
<script>
function doSpellCheck(form,field){
<span style="color:#ff6600;">//make sure not empty</span>
if(field.value==" ")
return false;
}
<span style="color:#ff9900;">//init</span>
...............
<span style="color:#ff9900;">//Done</span>
</script>
正則表達式:(?m)^\s*//.*$
正則表達書--匹配字符
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.