最近處於工程尾期,抽出點時間來學習下工程中用到的知識點。
正則表達式
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}$")
結束,舉了這麼多的例子,查看者應該看懂了
//參考文章