正規表示式是對字串的強大的處理工具,可以對字串進行查詢、提取、分割、替換操作。所謂正規表示式,可以把他看成匹配字串的模板。
字元解釋
x任意合法字元x
\0***
8進製表示法表示的字元
\xhh
16進製表示法表示的字元
\uhhhh
16進製表示的unicode字元
\t製表符
\n換行符
\r回車符
\f換頁符
\a報警符
\eescape符
\cxx對應的控制符。如\cm匹配ctrl-m。x值必須a-z或者a-z
還有一些特殊的符號字元
解釋$匹配一行的結尾
^匹配一行的開頭
()子表示式
子表示式,匹配集合
{}匹配前面子表示式的頻度
*指定前面表示式出現0次或者多次
+指定前面表示式出現1次或者多次
?指定前面表示式出現0次或者多次
.匹配除了\n以外的任何單字元
\轉義用
|指定兩項之間的任何一項
以上這些就只可以直接出現在正規表示式中的字元。
例子:
"\u0041\\
\\" //用於匹配"a\\" 即 a\
"\\?\\
[" //用於匹配"\?
\[" 即 ?[
以上的例子都只是單個字元匹配,如果說要任意乙個字母匹配都可以,那就不能用上面例子這種寫法,萬用字元很好解決這個問題。
預定義字元(即「萬用字元」)
預定義字元解釋.
匹配任意字元
\d匹配0-9的任意數字
\d匹配非數字
\s匹配所有空白字元,包括空格、\t、\r、\n、\f等
\s匹配所有非空白字元
\w匹配所有的單詞字元,包括0-9,26個字母,下劃線(_)
\w匹配所有非單詞字元
例子:
"\\d\\d\\d-\\d\\d\\d-\\d\\d\\d\\d" //匹配如 000-000-0000形式的**號碼
就是做匹配集合,只要符合內的表示式,就可以被匹配。
表示式可用的符號符號
解釋x任意單詞字元,如[abc],表示匹配a、b、c中任意乙個
-表示範圍,如[a-c],表示a到c的任意乙個,a、b、c
^表示非,如[^a-c],表示除a、b、c外的任意乙個
&&表示式1&&表示式2,表示表示式1與2的交集
()表示式很有意思,用於匹配,如果表示式搭配其他符號意義就不一樣了。
符號解釋
(***)
匹配***
(?:***)
這個表示式使用 | 來匹配,如「industr(?:y|ies)」就是乙個匹配「industry」或者「industries」更簡略的表示式
(?=***)
執行正向**先行搜尋的子表示式,該表示式匹配處於匹配 *** 的字串的起始點的字串。例如,』windows (?=95|98|nt|2000)』 匹配」windows 2000」中的」windows」,但不匹配」windows 3.1」中的」windows」
(?!***)
與(?=***)相反
頻度使用的是{}
符號解釋
正好匹配n次
最少匹配n次
n <= m, 至少匹配n次,至多匹配m次
例子:
"fooooood" //如果是split的話,結果就是 "f"
"""d"
JAVA基礎 java中E,T,?的區別
listlist new arraylist t t list.get 0 list list new arraylist t t t list.get 0 相信你已經看出 a 用泛型只是確定了集合內的元素的型別,但卻是在編譯時確定了元素的型別再取出來時已經不再需要強轉 增強程式可讀性,穩定性和效率...
Java鍊錶基礎 2
鍊錶的基本形式 class node public node string data public void setdata string data public string getdata public void setnext node next public node getnext 實現節...
Java基礎之鍊錶
鍊錶 linked list 一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料,而是在每乙個節點裡存到是下乙個節點的指標 pointer 鍊錶一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料,而是在每乙個節點裡存到是下乙個節點的指標 pointer 鍊錶與陣列...