Java基礎 Java中的正規表示式

2021-08-19 16:49:25 字數 1855 閱讀 8646

正規表示式是對字串的強大的處理工具,可以對字串進行查詢、提取、分割、替換操作。所謂正規表示式,可以把他看成匹配字串的模板。

字元解釋

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 鍊錶與陣列...