正則表達式的基本使用

雖說正則表達式在我們真正的項目開發過程中,大多數都是直接去查資料,但是對於一些正則表達式的基礎知識還是十分有必要了解的。比如讀懂一個正則表達式,還有面試的時候很可能會被問到。

1 學習教程

(1)學習網站:http://www.runoob.com/regexp/regexp-tutorial.html
(2)教程什麼的看的太煩了,而且還有些東西並不是很實用,下面花10分鐘就可以掌握實用的、基礎的正則表達式了。當然,這些東西都只是瞭解,快速入門,實用就行,會寫簡單的正則表達式,能夠看得懂正則表達式就夠了。

2 請把下面的符號表達的意思記住

* 表示前一個表達式可以出現0、1、多次
+ 表示前一個表達式可以出現1、多次
? 表示前一個表達式可以出現0、1次
^ 表示是否以指定字符串開頭,如果在[]前面使用,表示不接受該字符集合
$ 表示是否以指定字符串結尾
| 表示兩者間的選擇
. 匹配除換行(\n)外的任意一個字符

{n}表示前一個表達式出現確定的 n 次
{n,}表示前一個表達式至少出現n 次
{n,m}最少出現 n 次且最多出現 m 次
注:以上n和m都是非負整數
注:表達式可以是小括號括起來的式子,也可以是單個字符

3 好了,是不是感覺很簡單,下面以實例來講解

(1)實例一: ^once
分析:^的意思是,以某個指定的字符串開頭,所以上面正則表達式的意思是:匹配以once開頭的字符串

(2)實例二, ^a{2,4}$
分析:以a開頭,最少2個a,最多3個a,以a結尾。所以它能匹配的字符串是aa aaa aaaa

(3)補充: - 表示字符範圍。匹配指定範圍內的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 範圍內的任意小寫字母字符。

(4)補充: \d 表示匹配任意一個數字。

(5)實例三,來個複雜的:

驗證如下手機號碼:
 移動號碼段:139138137136135134150151152157158159182183187188147
 聯通號碼段:130131132136185186145
 電信號碼段:133153180189
    表達式如下:
    ^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$
(ps:以上表達式來源:http://www.jb51.net/article/96201.htm)

分析:把子表示式分解出來

  ^(                 #表示以某某開頭
     (13[0-9])       #130到139
     |               #或者
     (14[5|7])       #145或147
     |
     (15([0-3]|[5-9]))   #150到153   或者   155到159
     |
     (18[0,5-9])      #180,185到189
   )
   \\d{8}$            #匹配任意8個數字,且以數字結尾

4 正則表達式

這裏寫圖片描述
也可以看以下鏈接:
http://www.runoob.com/regexp/regexp-metachar.html

發佈了96 篇原創文章 · 獲贊 258 · 訪問量 118萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章