1.什麼是正規表示式?
在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句 話 說,正規表示式就是記錄文字規則的**。
常用的元字元
**說明
.匹配除換行符以外的任意字元
/w匹配字母或數字或下劃線或漢字
/s匹配任意的空白符
/d匹配數字
/b匹配單詞的開始或結束
^匹配字串的開始
$匹配字串的結束
比如:/b/w/b
匹配剛好6個字元的單詞
乙個**如果要求你填寫的qq號必須為5位到12位數字時,可以使用:^/d$
字元轉義
如果你想查詢元字元本身的話,比如你查詢.
,或者*
,就出現了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用/
來取消這些字元的特殊意義。因此,你應該使用/.
和/*。當然,要查詢/
本身,你也得用//
.例如:unibetter/.com
匹配unibetter.com
,c://windows
匹配c:/windows
常用的限定符
*重複零次或更多次
+重複一次或更多次
?重複零次或一次
重複n次
重複n次或更多次
重複n到m次
要想查詢數字,字母或數字,空白是很簡單的,因為已經有了對應這些字元集合的元字元,但是如果你想匹配沒有預定義元字元的字元集合(比如母音字母a,e,i,o,u),應該怎麼辦?
很簡單,你只需要在方括號裡列出它們就行了,像[aeiou]
就匹配任何乙個英文母音字母
,[.?!]
匹配標點符號(.或?或!)
。我們也可以輕鬆地指定乙個字元範圍,像[0-9]
代表的含意與/d
就是完全一致的:一位數字
;同理[a-z0-9a-z_]
也完全等同於/w
(如果只考慮英文的話)。
下面是乙個更複雜的表示式:/(?0/d[) -]?/d
。「(」和「)」也是元字元,後面的分組節裡會提到,所以在這裡需要使用轉義。
這個表示式可以匹配幾種格式的**號碼
,像(010)88886666
,或022-22334455
,或02912345678
等。我們對它進行一些分析吧:首先是乙個轉義字元/(
,它能出現0次或1次(?
),然後是乙個0
,後面跟著2個數字(/d
),然後是)
或-或空格
中的乙個,它出現1次或不出現(?
),最後是8個數字(/d
)。可以參考如下**
正規表示式的一些簡單用法
1.字元類 x 字元 x abc a b 或 c 簡單類 abc 任何字元,除了 a b 或 c 否定 0 9 表示可以出現0 9中任意乙個數字 0 9 a za z a 到 z 或 a 到 z,兩頭的字母包括在內 範圍 a za z 0 9 小寫字母大寫字母數字都可以 2.預定義字元類 d 數字 ...
正規表示式的一些用法
從學習開始,老師就對正則表示出不重視,作為學生多少受些影響 說的是以後需要什麼正則網上一搜一大堆 再次看到正則,發現懵懵懂懂,就決定將看見的寫下來,備以後整理出完整的.為取負值限制,例 a,匹配不為a的,注意 必須寫在首位,如果為 a則是匹配 a xn 匹配 n,其中 n 為十六進製制轉義值。十六進...
PHP 簡單正規表示式的使用
1 讓我們看看兩個特別的字元 和 他們是分別用來匹配字串的開始和結束,以下分別舉例說明 the 匹配以 the 開頭的字串 of despair 匹配以 of despair 結尾的字串 abc 匹配以abc開頭和以abc結尾的字串,實際上是只有abc與之匹配 notice 匹配包含notice的字...