2)在字元組裡,元字元的定義和意義是完全不一樣的,尤其是連字元「-」,在字元組中,它往往用於匹配乙個範圍,除非它是緊跟在「[」後面的,這裡它匹配的就是「-」本身,而不作為範圍識別的用途。所以,要切記,在字元組中,如果「-」是作為普通字元而不是元字元進行匹配時,一定要將連字元放在最前面,當然,還有另外一種解決辦法是轉義,不過這樣一來又會增加表示式的複雜度了。所以還是盡量放在前面啦;
關於這個問題的原文摘錄:在字元組內部,元字元的定義規則(及它們的意義)是不一樣的。例如,在字元組外部,點號是元字元,但是在內部則不是如此。相反,連字元只有在字元組內部(這是普遍情況)才是元字元,否則就不是。脫字元在字元組外部表示乙個意思,在字元組內部緊接著「[」時表示另外乙個意思,其他情況下又表示別的意思。
3)脫字元「^」在字元組中,則表示不匹配它自己後面緊跟的字元,如果在字元組外,則是從開頭處開始匹配的意思;
4)表示重複的元字元「?」、「*」、「+」的異同:
表示重複的元字元「?」、「*」、「+」的異同
次數下限
次數上限說明?
01可以不出現,如果出現最多只能出現一次*0
無 可以出現任意多次+1
無至少出現一次,上不封頂
5)如果想要在複雜性與完整性之間尋求乙個平衡,乙個重要的因素是了解清楚待匹配的物件;
6)正規表示式中括號的三種功能:
6.1)限定多選結構的範圍; 如:ab(c|d|e)fgh,注意上述寫法與去掉括號時 abc|d|efgh 的區別
6.2)標註量詞作用的元素;如:ab(cde)+fgh,注意上述寫法與去掉括號時 abcde+fhg的區別
6.3)為引用捕獲文字;作為這個用法加括號是為了返回或引用匹配結果
7)非捕獲型括號:(?:)
8)如果多選分支是有序的,而且能夠匹配同樣文字的分支不只乙個,那就必須要特別注意多個分支的排列次序
9)優化引擎從來不會在字串開頭以外的地方嘗試帶^錨點的表示式,因為這樣可能會嚴重影響匹配的效率
《精通正規表示式》讀書筆記(1)
宣告 筆記僅供參考,不足之處請見諒。正規表示式能解決什麼實際問題?正規表示式能給你帶來超乎你之前想象的文字處理能力。如常見的簡單文字替換或查詢,雖然普通編輯器的替換或查詢能滿足一般的需求了,但是如果要處理稍微複雜點的替換或查詢操作,那麼也許你必須手動處理了。如替換或查詢文字中的所有email位址 一...
《精通正規表示式》筆記
1.多選結構 mm gg 表示匹配 mm 或 gg 2.忽略大小寫 s source dest i 搜尋source,將其替換為dest,此處的i只對source起作用,而不會作用於dest。3.單詞分界符 用來匹配單詞的開始 用來匹配單詞的結束 比如 cat 匹配以 cat 結尾的單詞,如scat...
精通正規表示式
我只看了前面兩三章 這書的核心是4 5 6章 精通正規表示式 這本書的第四章和第六章比較值得看 1.多選結構 mm gg 表示匹配 mm 或 gg 2.忽略大小寫 s source dest i 搜尋source,將其替換為dest,此處的i只對source起作用,而不會作用於dest。3.單詞分界...