「^」這個符號在正規表示式的中的應用相信是所有程式設計師都掌握的, 因為它是正規表示式中最基礎最常用的知識點。
它在正規表示式中表示兩種不同的意義
1
表示匹配一段文字開頭的位置,
注意, 匹配的是乙個位置, 而不是具體的某個字元,「 匹配位置」在正規表示式中有很重要的意義。
這個正規表示式就是用來匹配以小寫的「a」開頭的字串, 如「alibaba」,但不能匹配「baidu」,「^」代表的是字串第乙個字母前面那個用肉眼看不見的位置。
以上面這個正規表示式為例,一般情況下我們會使用兩種思路去理解
不匹配「a」和「b」開頭的字串
匹配除「a」和「b」以外的所有字串開頭的字串
通過這兩種思路去理解這個正規表示式, 最終的答案都是一樣的,也是正確的。 我們思考問題的邏輯思路更傾向於第一種理解方式。
然而, 對於整套正規表示式體系理念來說, 第一種理解方式是錯誤的。 在正規表示式理念中, 只有去「匹配」些什麼, 從來沒有「不匹配」這一說法,這一點是必須要區分清楚的。
當我們處理正則問題時, 在梳理邏輯時將「匹配」與「不匹配」混雜在一起,勢必會增加處理問題的複雜度, 對於簡單的問題受到的影響也許不是很明顯 , 就像上面舉的例子那樣, 因為還在我們智力的承受範圍內,但碰到複雜的問題時, 就會像掉進沼澤一樣, 怎麼爬也爬不出來, 最終被困死在泥潭中。但是,假如只是以單純的「匹配」去理解,就能簡化處理問題的難度,降低複雜度,2肯定比1複雜。 因此,正規表示式最重要的核心理念就是「匹配」
另外,在程式設計中用到的替換、切割、查詢等操作, 都是程式類庫封裝的功能, 和正規表示式本身半毛錢關係也沒有。 理解「匹配」也就意味著對學習正規表示式的入門。
正規表示式的正確使用方式
開發中會經常遇到正規表示式的使用,下面給出正規表示式使用的三種方式,並指出正確方式 public class test 沒有使用預編譯,不好 public static boolean matchregex1 string str 直接使用預編譯的pattern,可以提高效率 public stat...
正規表示式符號
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
正規表示式符號
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...