正則表達書--匹配字符

一、如何用普通字符和元字符來匹配單個字符
   . 可以匹配任何字符
   \ 用來對字符進行轉義
二、匹配一組字符
   與可以匹配任意字符的單個字符 .字符不同,字符集合只能匹配特定的字符和字符區間。
  元字符^:求非
  [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*//.*$
	

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章