- <?php
- /*
- *1、正則表達式iushi描述字符串排列模式的一種自定義語法規則
- *2、如果可以使用字符串處理函數完成的任務,就不要使用正則
- *3、一些複雜的操作,只能使用正則完成
- *4、正則表達式也成爲一種模式表達式
- *5、正則表達式是通過特定規則的模式,與輸入的字符信息比較,在進行分割、匹配查找、替換工作
- */
- /*
- 語法:
- 1、定界符
- //除了字母、數字、正斜線\外都可以作爲定界符
- 2、原子
- *原子是正則表達式的最基本組成單元,至少包含一個,只要一個正則表達式可以單獨使用的字符,就是原子
- *所有打印和非打印字符
- *代表範圍的原子
- \d:表達任何數字
- \D:表示任何除數字外的字符
- \s:表示任意一個空白字符
- \S:表示任意非空白字符
- \w:匹配a-zA-Z0-9_
- \W:和\w匹配相反
- *自己定義
- []:匹配方括號中任何一個原子
- [1-9a-z]:範圍
- [^1-9]:取反,^必須在方括號內的第一個字符
- *.
- 3、元字符
- 元字符是修飾原子的特殊字符,不可獨立使用
- * 表示其前面的原子可以出現任意次
- + 表示其前面原子至少出現1次
- ? 表示0次或者1次
- {} 自定義出現的次數
- {m} m爲整數
- {m,n} 大等於m次和小等於n次
- {m,}
- . 默認情況爲換行符之外的其他字符
- ^ 直接作爲第一個字符使用,爲開頭
- $ 最後使用爲結束符
- | 或的關係,匹配左右,優先級別最低,最後匹配
- \b 表示一個邊界
- \B 表示非邊界
- () 重點;
- 一、作爲大原子使用
- 二、改變優先級
- 三、作爲子模式使用
- 四、可以取消子模式,就作爲其他用處(?: )
- 五、反向引用 可以將子模式直接取出來,作爲正則表達式模式的一部分 preg_replace中
- 優先級:
- \
- () (?:) []
- * + ? {}
- ^ & \b
- |
- 4、模式修正符號
- //模式修正符
- 就是幾個字母
- 可以同時使用
- 是對正則表達式調優用的
- i:不區分大小寫
- m:將字符串視爲一行 ^ $視爲多行均可
- s:將字符串視爲單行,主要是針對.
- x:忽略空白
- e:
- U:匹配第一個
- /原子和元字符/模式修正符
- 處理函數:
- preg_match()
- */
- $pattern = "/((a)b{2,}c)/";
- $str = "aaaabbbbccc";
- if(preg_match($pattern,$str,$arr)){
- echo "正則表達式$pattern 匹配成功!";
- }else{
- echo "<font color='#FF000000'>正則表達式$pattern 匹配失敗!</font>";
- }
- print_r($arr);
- ?>