java正則表達式自我理解

正則表達式部分理解

  1. []
    使用[]表示匹配[]中括號中的一個字符,比如[abc],表示匹配a,b,c的任意一個字符,比如字符串中abcdabcdbd,會匹配到a,b,c,a,b,c,b,本意是隻要出現一個字符就會匹配,不會合併到一起。
    而[abc]+,代表的是匹配abc一次或出現多次,abcdabcdbd這個例子中會匹配到abc,abc,b,也就說匹配的是a,b,c中的任何字符,出現一次或多次都匹配,如果是連續出現的會當做一個字符串匹配到。
  2. \
    \表示轉移符號,常用的轉義字符有\n(換行)、\t(水平製表符,一個Tab鍵)、\r(回車)、\b(退格)、\f(換頁符)、\n(換行符)、\v(垂直製表符)、\’(代表 ’ )、\"(代表 “)、\\(代表 \)等等。正則表達式中還有表示的很多符號,這裏就不一一舉例了,下面的圖片中給出了所有符號。
    這裏要強調的是: 寫正則表達式中,\b、\f、\n、\t、\r、\’ 這些都可以直接寫,例如regex="\n";它就表示匹配一個換行符,而regex="\\n";也表示一個換行符,這兩種寫法都可以,但是對於一些符號就不能這樣寫了,例如:\w、\W、\B、\S、\s等等這些表示含義就不能這樣寫了,必須寫成regex="\\w",才能使用,否則會報錯。可以嘗試一下,再複製這些轉義字符時,會將\自動寫成\\,所以在寫正則表達式使用到帶有\符號的,我建議使用\\表示。
    注意: 並不是說所有的轉義字符都要寫成\\,例如:匹配 " 字符,不能寫成regex=”\\"",系統會將 " 轉義爲本身 " 含義,那麼再java中上述這句話就會多出一個 " 。所以應該寫成regex="\\\"",寫成regex="\""也是可以的。
    如果要匹配的是 \ 的話,java中的表示爲
    regex= " \\\\ "
    ,爲四個 \ ,其中兩個的含義表示轉義字符,前兩個代表轉義符號 \ ,後兩個代表另外一個符號 \ ,使用第一個 \ 再將第二個 \ 轉義爲本身字符 (這是我自己的理解,也許不正確,但是表示方式是對的),以此類推,如果要匹配\\,寫法爲regex=" \\\\\\\\ "
  3. |
    這個符號在正則表達式中表示或的意思,對於正則表達式中的x|y,表示匹配x或者y,這裏的 | 運算的優先級要高於x,y,也就是說,對於regex = “[a][b]|[c][d]”,來說,它匹配的是出現ab或者出現cd的字符串,不是匹配a(b或者c)d這樣的字符串。
  4. ?<=和?=
    這兩個符號很重要,這算是個組合符號吧,匹配該某符號但不包含此符號,舉個例子就能明白了,比如說要截取雙引號(" “)中說的話,比如String str = “he says,\“Hello,Java!\” “;說出的話中通常使用”“號括起來,現在需要匹配說話的內容,正則表達式可以表示爲regex = “(?<=\”)[^\”]+(?=\”)”;這其中的意思是:(?<=\")代表首先匹配 " ,但是不包含 " ,[^\"]+代表其次匹配一次或者多次匹配不是 " 的字符,(?=\")代表再次匹配 " ,但是不包含 " 。這樣子就能截取中間的句子了。這兩個符號一般配合使用,表示不包含匹配字符,一個在前,一個在後

注:以上所有的單引號雙引號都是英文,由於轉義的問題,許多符號變成了中文,看本博客的時候需要注意
暫時學到的用到的就只有這些,後邊如果再注意到新的點,之後再補充。

正則表達式表

在這裏插入圖片描述

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