Java正規表示式入門

2021-08-16 14:51:33 字數 3833 閱讀 5501

按照套路來,先上一段概念

正規表示式:正規表示式是乙個字串,使用單個字串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。(英語:regular expression,在**中常簡寫為regex)

先來個小例子

寫乙個檢查qq號是否是合法的正則,當然我們需要先確定qq號的規則

1.開頭不能是 0

2.全是數字

3.位數為 5 - 8 位

說來就來,上**

[1-9][0-9]
雖然很簡單,但是我還是要強行解釋一下:

1. [1-9] 代表的是第一位是需要符合數字 1 - 9 其中的乙個

2. [0-9] 代表的是第二位是需要符合數字 0 - 9 其中的乙個

3. 代表的是這樣的第二位可以出現 4 - 9 次

4.在正規表示式中,中括號就表示一位,當然也可以不寫中括號,直接寫規則

接下來就先介紹一下正規表示式的匹配規則,然後列舉一些例子去實現,偷個懶。。。注釋寫的很詳細

public

class

regex

/*** 檢查是否是qq號

*@param qq

*/public

static

void

checkqq(string qq) ");

system.out.println("檢測是否是qq號: " + b);

}/**

* 檢查是否是手機號

* 規則:第一位是 1; 第二位是 34578 一共有是十一位

*@param tel

*/public

static

void

checktel(string tel) ");

system.out.println("檢測是否是**號: " + b);

}/**

* 對字串按著正則規則進行切割

*@param regex 正則規則

*@param string 需要切割的字串

*/public

static

void

mysplit(string regex,string string)

system.out.println();

}/**

* 對字串按照正則規則進行替換

*@param regex 正則規則

*@param string 要進行處理的字串

*@param replace 替換的內容(替換成這個字串)

*/public

static

void

myreplaceall(string regex,string string,string replace)

/*** 檢查是郵箱格式是否正確

*@param regex

*@param mail

* * [email protected]

* [email protected],o

* [email protected]

* * 郵箱規則:

* @前 : 內容 [數字字母下劃線] 個數不能少於乙個

* @後 : 內容 [數字字母] 個數不能少於乙個

* .後 : 內容 [字母] 個數不能少於乙個(這個格式不能少於乙個,如:.com.cn 所以規則為:(\\.[a-z]+)+

*/public

static

void

checkmail(string mail)

}

這是一些常用的正則規則,在 api pattern 類中有詳細介紹:

字元:x

含義:代表的是字元x

例如:匹配規則為 「a」,那麼需要匹配的字串內容就是 」a」

字元:\

含義:代表的是反斜線字元』\』

例如:匹配規則為」\」 ,那麼需要匹配的字串內容就是 」\」

字元:\t

含義:製表符

例如:匹配規則為」\t」 ,那麼對應的效果就是產生乙個製表符的空間

字元類:[abc]

含義:代表的是字元a、b 或 c

例如:匹配規則為」[abc]」 ,那麼需要匹配的內容就是字元a,或者字元b,或字元c的乙個

字元類:[^abc]

含義:代表的是除了 a、b 或 c以外的任何字元

例如:匹配規則為」[^abc]」,那麼需要匹配的內容就是不是字元a,或者不是字元b,或不是字元c的任意乙個字元

字元類:[a-za-z]

含義:代表的是a 到 z 或 a 到 z,兩頭的字母包括在內

例如:匹配規則為」[a-za-z]」,那麼需要匹配的是乙個大寫或者小寫字母

字元類:[0-9]

含義:代表的是 0到9數字,兩頭的數字包括在內

例如:匹配規則為」[0-9]」,那麼需要匹配的是乙個數字

字元類:[a-za-z_0-9]

含義:代表的字母或者數字或者下劃線(即單詞字元)

例如:匹配規則為」 [a-za-z_0-9] 「,那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

預定義字元類:.

含義:代表的是任何字元

例如:匹配規則為」 . 「,那麼需要匹配的是乙個任意字元。如果,就想使用 . 的話,使用匹配規則」\.」來實現

預定義字元類:\d

含義:代表的是 0到9數字,兩頭的數字包括在內,相當於[0-9]

例如:匹配規則為」\d 「,那麼需要匹配的是乙個數字

預定義字元類:\w

含義:代表的字母或者數字或者下劃線(即單詞字元),相當於[a-za-z_0-9]

例如:匹配規則為」\w 「,,那麼需要匹配的是乙個字母或者是乙個數字或乙個下滑線

邊界匹配器:^

含義:代表的是行的開頭

例如:匹配規則為^[abc][0-9]$ ,那麼需要匹配的內容從[abc]這個位置開始, 相當於左雙引號

邊界匹配器:含義

:代表的

是行的結

尾例如:

匹配規則

為[ab

c][0

−9] 含義:

代表的是

行的結尾

例如:匹

配規則為

[abc

][0−

9]

,那麼需要匹配的內容以[0-9]這個結束, 相當於右雙引號

邊界匹配器:\b

含義:代表的是單詞邊界

例如:匹配規則為」\b[abc]\b」 ,那麼代表的是字母a或b或c的左右兩邊需要的是非單詞字元([a-za-z_0-9])

數量詞:x?

含義:代表的是x出現一次或一次也沒有

例如:匹配規則為」a?」,那麼需要匹配的內容是乙個字元a,或者乙個a都沒有

數量詞:x*

含義:代表的是x出現零次或多次

例如:匹配規則為」a*」 ,那麼需要匹配的內容是多個字元a,或者乙個a都沒有

數量詞:x+

含義:代表的是x出現一次或多次

例如:匹配規則為」a+」,那麼需要匹配的內容是多個字元a,或者乙個a

數量詞:x

含義:代表的是x出現恰好 n 次

例如:匹配規則為」a」,那麼需要匹配的內容是5個字元a

數量詞:x

含義:代表的是x出現至少 n 次

例如:匹配規則為」a」,那麼需要匹配的內容是最少有5個字元a

數量詞:x

含義:代表的是x出現至少 n 次,但是不超過 m 次

例如:匹配規則為」a」,那麼需要匹配的內容是有5個字元a 到 8個字元a之間

正規表示式 正則入門

先從乙個例子開始正規表示式。書寫乙個匹配手機號的正規表示式,為了方便討論,假定手機號是1開頭,第二位只能是3 5 8中的其中乙個,總共11位的數字,形如13 匹配手機號的正規表示式為 1 358 d 下面介紹此正規表示式中的各個符號的含義。表示字串的開頭,後面緊接著1,表示匹配的字串要以 1 開頭。...

正規表示式入門

對於文字字元,有11個字元被保留作特殊用途。他們是 這些特殊字元也被稱作元字元 不可顯示字元 可以使用特殊字串行來代表某些不可顯示字元 代表tab 0x09 代表回車符 0x0d 代表換行符 0x0a 字符集 字符集是由一對方括號 括起來的字元集合。使用字符集,你可以告訴正規表示式引擎僅僅匹配多個字...

正規表示式入門

老師說過 正規表示式就是用字串讀取字串!學習正規表示式的最好方法是從例子開始,理解例子之後再自己對例子進行修改,實驗。下面給出了不少簡單的例子,並對它們作了詳細的說明。假設你在一篇英文 裡查詢hi,你可以使用正規表示式hi。這幾乎是最簡單的正規表示式了,它可以精確匹配這樣的字串 由兩個字元組成,前乙...