按照套路來,先上一段概念
正規表示式:正規表示式是乙個字串,使用單個字串來描述、用來定義匹配規則,匹配一系列符合某個句法規則的字串。(英語: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
* * 郵箱規則:
* @前 : 內容 [數字字母下劃線] 個數不能少於乙個
* @後 : 內容 [數字字母] 個數不能少於乙個
* .後 : 內容 [字母] 個數不能少於乙個(這個格式不能少於乙個,如:.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。這幾乎是最簡單的正規表示式了,它可以精確匹配這樣的字串 由兩個字元組成,前乙...