常用正则

最后更新于:2022-04-02 02:35:16

[TOC] ## 正则实例 |正则|说明|实例| |---|---|---| |身份证|`/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/`|| |手机号|`/^0?(13|14|15|17|18|19)[0-9]{9}$/`|| |银行卡|`/^\d{16}|\d{19}$/`|| |Email|`/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/`|| |网址|`/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+$/`|| |电话号码|`/^[0-9-()()]{7,18}$/`|| |日期|`/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/`|2017-02-51| |无特殊字符的用户名|`/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/`|hello@# 不通过| ## 技巧 ### 后向引用 ```php $str='abc'; Pattern= '/(.*)<\/b>/'; preg_replace($pattern, '\\1', $str); ``` ### 贪婪模式 1. 用`.*?` 取消贪婪模式 `/.*?<\/b>/` 2. 用 `U`取消贪婪 `'/.*<\/b>/U'` ### 常用函数 ``` preg_match(), preg_match_all(), Preg_replace(), //替换 preg_split() //分割 ``` ### 中文匹配 UTF-8汉字编码范围是`0x4e00-0x9fa5`, ANSI(gb2312)环境下,`0xb0-0xf7`,`0xa1-0xfe` UTF-8要使用u模式修正符使模式字符串被当成UTF-8, ANSI(gb2312)环境下,要使用chr将Asc码转换为字符 ``` $str='中文' Pattern ='/[\xt{4e001-\x{t9fa5}]+/u'; ``` ### 匹配 img 的 src 值 ```php $str='测试'; $pattern='/ ';