## 正則表達式
在編寫處理字符串的程序或網頁時,經常有查找符合某些復雜規則的字符串的需要。正則表達式就是用于描述這些規則的工具。換句話說,正則表達式就是記錄文本規則的代碼。
**常用元字符**
| 代碼 | 說明 |
| ---- | ------------------------------------------------------------ |
| . | 匹配除換行符以外的任意字符 |
| \w | 匹配字母或數字或下劃線 |
| \s | 匹配任意的空白符(space) |
| \d | 匹配數字 |
| \b | 匹配單詞的開始或結束 |
| ^ | 匹配字符串的開始 |
| $ | 匹配字符串的結束 |
| \un | 匹配n,其中n是一個用四個十六進制數字表示的Unicode字符。例如,\u00A9匹配版權符號(?)。 |
**常用限定符**
| 代碼/語法 | 說明 |
| --------- | ------------------------------------------------------------ |
| * | 重復零次或更多次 |
| + | 重復一次或更多次 |
| ? | 重復零次或一次 |
| {n} | 重復n次 |
| {n,} | 重復n次或更多次 |
| {n,m} | 重復n-m次 |
| x\|y | 匹配x或y。例如,“`z|food`"能匹配"`z`"或"`food`"。"`(z|f)ood`"則匹配"`zood`"或"`food`"。 |
| [a-z] | 字符范圍。匹配指定范圍內的任意字符。例如,“`[a-z]`"可以匹配"`a`"到"`z`"范圍內的任意小寫字母字符 |
| | |
**常用反義詞**
| 代碼/語法 | 說明 |
| --------- | ------------------------------------------ |
| \W | 匹配任意不是字母,數字,下劃線,漢字的字符 |
| \S | 匹配任意不是空白符的字符 |
| \D | 匹配任意非數字的字符 |
| \B | 匹配不是單詞開頭或結束的位置 |
| [^x] | 匹配除了x以外的任意字符 |
| [^aeiou] | 匹配除了aeiou這幾個字母以外的任意字符 |
## 常見的正則表達式
| Unicode編碼中的漢字范圍 | `/^[\u2E80-\u9FFF]+$/` |
| ---------------------------- | ------------------------------------------------- |
| URL | ` ^((https|http)?:\/\/)[^\s]+ ` |
| 電子郵箱 | /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ |
| 中國大陸身份證號(15位或18位) | \d{15}(\d\d[0-9xX])? |
| QQ號碼 | [1-9]\d{4,11} |
| 空白行 | \s |
| 刪除代碼\\注釋 | (?<!http:\|\S)//.*$ |
參考地址:
- [http://www.jb51.net/tools/regexsc.htm](http://www.jb51.net/tools/regexsc.htm)
- [在線測試](http://tool.chinaz.com/regex/)
- PC
- IO模型
- Inode介紹
- Linux
- Linux基本操作命令
- Linux網絡相關命令
- Crontab計劃任務
- Shell
- Sed命令
- Awk命令
- LAMP/LNMP
- PHP
- 基本語法
- 面向對象
- 錯誤和異常處理
- 命名空間
- PHP7
- 正則表達式
- Hashtable
- 變量的內部實現
- PHP-FPM
- PHP運行原理
- swoole
- mysql
- SQL標準
- mysql三范式
- 存儲引擎
- Mysql事務
- Mysql索引
- Mysql優化
- Explain
- MySQL索引原理及慢查詢優化
- MongoDb
- 計算機網絡
- IP協議
- TCP(傳輸控制協議)
- UDP(用戶數據報協議)
- HTTP 協議
- HTTPS
- HTTP的基本優化
- Websocket協議
- 版本控制器
- Git
- Svn
- 數據結構
- 數組
- 鏈表
- 算法