Java --正則表達式

最近處於工程尾期,抽出點時間來學習下工程中用到的知識點。
正則表達式

1.正則表達式做用:編程

它使用單個字符串來描述、匹配一系列符合某個語法規則的字符串。編輯器

舉例:在不少文本編輯器裏,正則表達式被用來檢索、替換某些文字或字符串。函數

注意:當正則表達式和字符串函數都能解決問題時,儘可能使用字符串函數,這樣不容易出錯,最重要的一點是字符串函數比正則表達式實現性能上要好得多。性能

2.正則表達式使用緣由:學習

能夠這麼說,正則表達式能實現的,都能經過編程來實現,那麼咱們爲何還須要學習正則表達式呢?緣由以下:測試

1>正則表達式可以在很大程度上簡化編程實現的代碼
spa

2>用正則表達式去處理字符串,代碼更容易理解
.net

3>一般來講,正則表達式的速度遠比本身寫邏輯代碼來實現功能要高得多(除非有現成的方法或者函數)
字符串

3.正則表達式構成

正則表達式由 文件字符 和 元字符 構成。文本字符便是用戶須要匹配的內容;元字符是正則表達式中具備特殊意義的專用字符,它用來指定匹配規則。

4.基礎正則表達式

. 與 [ ] 與 ^ 與 $ ,這四個稱之爲基礎正則表達式,全部語言都支持這四個。正則表達式等價理解:

?,*,+,\d,\w都是等價字符

? 等價於 重複0次或者1次

* 等價於 重複0次或者屢次

+ 等價於 重複1次或者屢次

\d 等價於 [0-9]

\w 等價於 [A-Z或a-z或0-9或_或其它字符]

{n} 重複n次

{n,m} 重複n到m次

. 匹配除換行符之外的任意字符

\s 匹配任意的空白符

[ ] 包含,默認一個字符長度

[^]不包含,默認一個字符長度

[A-Za-z0-9] 26個大寫字母、26個小寫字母和0-9數字 中的一個

經常使用運算符與表達式

^ 匹配字符串開始

$ 匹配字符串結束

5.正則表達式語法與釋義

基礎語法  "^([ ]{})([ ]{})([ ]{})$"

正則字符串 = "開始 ([包含內容]{長度}) ([包含內容]{長度}) ([包含內容]{長度}) 結束"

6.正則表達式常見應用

1>驗證用戶名,要求

1.規定用戶名第一個字符必須是字母

2.用戶名長度爲6到16位

正則表達式:("^[a-zA-Z]\w{5,15}$")

解釋:

[a-zA-Z]  表示26+26個大小寫字母中的一個,知足條件1(第一個字符必須是字符)

\w  表示字母或數字或下劃線或其它字符

{5,15}  指定\w的長度爲5位到15位之間,同時知足條件2(用戶名長度在6到16位)

2>驗證手機號碼,要求

1.位數爲11位

2.第一位必須是1

3.第2位在(3,4,5,7,8)這幾個數字中選擇一位

正則表達式:("^1[3|4|5|7|8][0-9]\\d{8}$")

疑惑,個人寫法以下,不知道行不

("^1[3|4|5|7|8][0-9]{9}$")

剛測試了下,是可行的

3>驗證身份證號碼,這裏只針對18位的

("^[1-9]{17},[0|1|x]{1}$")

結束,舉了這麼多的例子,查看者應該看懂了

//參考文章

http://deerchao.net/

相關文章
相關標籤/搜索