正則表達式學習筆記(一)

  • 什麼是正則表達式

    在編寫處理字符串的時候,經常會有查找符合某些複雜規則的字符串的需要,正則表達式就是用來描述這些規則的工具,換句話說,正則表達式就是記錄文本規則的代碼。


  • 正則表達式語法遞進學習

        (1)       關於大小寫,正則表達式處理工具會有控制的機制,人爲可調,後面會講。

        (2)       \b

    這是屬於正則表達式裏面的所謂元字符。看看應用,假設想要在某段文本中查找”men”這個字符串。若是沒有使用\b,那麼結果是這樣的:

wKioL1V1OSLCion5AAB5vTliFEA072.jpg

    如果使用了\b的話,結果就是這樣:

wKioL1V1OUiwQg6FAABoxEzthoY717.jpg

        \b匹配的是單詞邊界,不匹配任何字符。其中的單詞是指另外一個元字符\w所規定的字符串,具體有哪些呢?

    這個是看情況的,在支持ASCII碼的語言中,\w那就是等價於【a-A-9_】;而在Unicode的語言中,默認情況下,除了以上那些,還包括漢字,全角數字等。

        (3)       “.” “*”

    如果要查找以”men”開頭,以”Lucy”結尾的字符串,怎麼做呢,可以如下操作,結果如下:

wKioL1V1OWLSHDLKAACGnD5l--c427.jpg

    “.” ”*”都是屬於元字符。

    “.”匹配除了換行符以外的任意一位字符。

    “*”不代表字符和位置(不要把它和windows系統裏面的查詢的通配符論比),在正則表達式裏面,它表達的是*前邊的內容可以連續重複使用任意次以上。

    上述圖片裏面的意思就是以”men”開頭,”Lucy”結尾,中間有任意數量但是不能有換行的字符的字符串。所以圖片藍色框框內的字符串沒有連起來,因爲換行了。”*”可以匹配的是0個或者更多個,有一個符號作用與*相同,那就是”+”,但是它匹配的是1個或者更多個。

        (4)       “\d” “-“

    若是想要查找數字字符串怎麼辦?使用”\d”

    “\d”也是元字符,表示一位數字(0~9)。

    “-”不屬於元字符,只用來匹配自己,所以可以用來匹配中橫線或者減號。

如下圖所表示:

wKiom1V1UHTgU_UHAAB0Y1EbKCw790.jpg

    但是輸入這麼多的符號,非常的麻煩,於是,另外的一個方法解決這個麻煩:

    wKiom1V1UKqxwJUlAABnav3Lm10325.jpg

    相必已經看到,在\d的後面多了{2},其中2就表示是數目。

        (5)       測試工具,這裏使用的測試工具是從網上下載的RegexBuddy,可以用來做正則表達式的練習和測試。

        (6)       \w

    再來說說\w,前面已經說過,\w表示的是一個匹配單詞的元字符,\w也可以用{數字}來表示這個單詞有幾位。例如\b\w{4}\b:匹配4個字符的單詞。

        (7)       其它常用元字符

代碼

詳解

\s

匹配任意的空白符

^

匹配字符串的開始

$

匹配字符串的結束

    說明:\s匹配的空白符包括空格,製表符(tab)換行符,中文全角空格。

            符號^$類似於\b,下面是一個實例:

wKiom1V1UMGxd_USAABUPdHh7bA233.jpg

    其中,{5,12}{5}這種形式的擴展用法,{5}表示必須是5個,而{5,12}則是表示可以爲5~12個數,重複方法小結:

代碼

詳解

*

重複0次或者更多次

+

重複1次或者以上

重複0次或者1

{n}

重複n

{n,}

重複n次或者更多次

{n,m}

重複n次到m


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