# PHP的正則表達式函數
preg_match
preg_meatch_all
preg_grep
preg_filter
preg_split
preg_quote
# 正則表達式
* **界定符**
* **原子**
* **量詞**
* **邊界控制**
* **模式單元**
* * * * *
## 界定符
**解釋: 標識一個正則表達式的開始和結束.它告訴PHP解釋器,正則表達式從哪里開始到哪里結束**
**例子: /[0-9]/---- #[0-9]# ----{[0-9]}**
備注:在PHP中,"/", "{", "#" 都可以作為界定符, 不推薦使用 "{"
* * * * *
## 正則表達式驗證工具
**regexpal** 地址:[http://regexpal.isbadguy.com/](http://regexpal.isbadguy.com/)
* * * * *
## 原子(最小匹配單位)
* **可見原子: unicode編碼表中用鍵盤輸出后肉眼可見的字符**
包括:
標點符號 , ; ? 等等
英文字母數字 a-z A-Z 0-9
漢字,日文,阿拉伯文等其他語言文字
數理化公式符號
其他可見的字符
* **不可見原子: unicode編碼表中用鍵盤輸出后肉眼不可見的字符**
包括:
空格,tab制表符(\t),換行(\n)等
* * * * *
## 元字符
* 定義原子的篩選方式
| 匹配兩個或多個分支選擇
[] 匹配方括號中的任意一個原子, 區間功能:[a-z][A-Z][0-9][0-3]
[^]匹配除了方括號中的原子之外的人任意字符
例子:
匹配Duang~和duang~ 1. Duang~|duang~ 2. [Dd]uang~
匹配789 1. [789]
匹配飛789 1.[^789]
* 定義原子的集合(這類元字符寫法固定)
. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下劃線或漢字[a-zA-Z0-9_]
\s 匹配任意的不可見原子[\f\n\r\t\v]
\d 匹配數字[0-9]
\b 匹配單詞的開始或結束
^ 匹配行的開始
$ 匹配行的結束
\W 匹配任意不是字母,數字,下劃線,漢字的字符[^a-zA-Z0-9_]
\S 匹配任意可見原子[^\f\n\r\t\v]
\D 匹配任意非數字的字符[^0-9]
\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字符
* * * * *
## 量詞
{n} 標識其前面的原子恰好出現n次
{n,} 標識其前面的原子最少出現n次
{n,m} 標識其前面的原子最少出現n次,最多出現m次
* \* 匹配0次,1次或者多次其之前出現的原子 {0,}
* + 匹配1次或者多次其之前出現的原子 {1,}
* ? 匹配0次或者1次其之前出現的原子 {0,1}
## 邊界控制
^ 匹配字符串開始的位置
$ 匹配字符串結尾的位置
## 模式單元
() 匹配其中的整體為一個原子
## 修正模式
解釋:給正則表達式的匹配過程指定一種匹配模式
分為:
貪婪模式: 匹配結果出現起義時候取其長(默認是貪婪模式)
懶惰模式: 匹配結果出現起義時候取其短(懶惰模式使用:U) 例子: /[099]/U
忽略大小寫: i
忽略空白: x
讓元字符"."匹配包括換行符在內的所有字符: s
總模式: 每一個pattern可以看作一個總模式
子模式: pattern中每一個模式單元(...)稱為子模式