定界符
php中的正则的定界符 // 代表起始和结束;
修饰符
修饰符 | 描述 |
i | 忽略大小写的检索 |
g | 全局检索 |
m | 多行匹配 |
s | 将一个字符串视为一行,忽略其中所有换行符,与 m 作用相反 |
x | 忽略正则表达式中的空白和注释 |
u | 第一次匹配后停止 |
元字符
\A | 只匹配字符串开头 |
\b | 匹配单词边界 |
\B | 匹配除单词边界之外的任意字符 |
\d | 匹配数字字符。与[0 - 9]相同 |
\D | 非数字字符 |
\s | 空白字符 |
\S | 非空白字符 |
[ ] | 包围一个字符类 |
( ) | 包围一个字符分组或定义一个反引用 |
$ | 匹配行尾 |
^ | 匹配行首 |
. | 匹配所有字符,除换行 |
\ | 引出下一个元字符 |
\w | 匹配任何只包含下划线和字母数字字符的字符串。与[ a-zA-Z0-9_ ]相同 |
\W | 忽略下划线和字母数字字符 |
量词
* 0到多个
+ 至少一个;
? 0或1个;
{n} 刚好n个; 与js量词的写法有区别
{n,} 至少n个
{n,m} n到m个;
^n 以n的开头
n$ 以n的结尾
| 代表或的意思 as|ad as或ad
[asc] 方括号中任意一个
[^asc] 除了方括号中的任意一个;
() 一个整体,改变优先级,分组引用;
常用正则表达式
用户名 | /^[a-z0-9_-]{3,16}$/ |
---|---|
密码 | /^[a-z0-9_-]{6,18}$/ |
十六进制值 | /^#?([a-f0-9]{6}|[a-f0-9]{3})$/ |
电子邮箱 | /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ |
URL | /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ |
IP 地址 | /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ |
HTML 标签 | /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ |
删除代码\\注释 | (?<!http:|\S)//.*$ |
Unicode编码中的汉字范围 | /^[\u2E80-\u9FFF]+$/ |