在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
常用元字符
| 代码 | 说明 |
| . | 匹配除换行符以外的任意字符 |
| \w | 匹配字母或数字或下划线或汉字 |
| \s | 匹配任意的空白符 |
| \d | 匹配数字 |
| \b | 匹配单词的开始或结束 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |
常用限定符
| 代码/语法 | 说明 |
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多次 |
| {n,m} | 重复n到m次 |
常用反义词
| 代码/语法 | 说明 |
| \W | 匹配任意不是字母,数字,下划线,汉字的字符 |
| \S | 匹配任意不是空白符的字符 |
| \D | 匹配任意非数字的字符 |
| \B | 匹配不是单词开头或结束的位置 |
| [^x] | 匹配除了x以外的任意字符 |
| [^aeiou] | 匹配除了aeiou这几个字母以外的任意字符
|
php、discuz论坛正则判断正则表达式对照表:
|
| 名称 | 正则表达式 | 描述 | 验证是否中文名字 | ^[\u4e00-\u9fa5]{2,4}$ | 中文2-4个汉字 |
|
| 年龄输入判断 | ^[0-9]\d{0,2}$ | 将最后的2改为1将只能 ... |
| |
| 匹配腾讯QQ号 | ^[0-9]\d{4,10}$ | 最低5位数最高11位数 ... |
| |
| 匹配网址URL | [a-zA-z]+://[^\s]* |
| ||
| 匹配Email地址 | \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* |
| ||
| 匹配国内电话号码 | \d{3}-\d{8}|\d{4}-\d{7} | 匹配形式如 0511-4405 ... |
| |
| 匹配中国邮政编码 | [0-9]\d{5}(?!\d) | 中国邮政编码为6位数 ... |
| |
| 判断是否为空 | [^0] | 任何输入都当作有效 |
| |
| 匹配ip地址 | \d+\.\d+\.\d+\.\d+ |
| ||
| 验证手机号 | ^[1][3-8][0-9]{9}$ |
| ||
| 检查是否全数字 | ^[0-9]+$ | 全数字,连小数点都不 ... |
| |
| 判断是否是日期加时间 | (?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31) (0?[0-9]|1[0-9]|2[0-3]):(0[0-9]|[12345][0-9]) | 不带秒 |
| |
| 判断大于0小于3的数字 | ^([1-9]\d?(\.\d{1,2})?|0.\d{1,2}|3)$ | 可用于判断复选框选择 ... |
| |
| 验证时间 | (0?[0-9]|1[0-9]|2[0-3]):(0[0-9]|[12345][0-9]):(0[0-9]|[12345][0-9]) | 格式12:12:12 |
| |
| 身份证号码验证 | ^\d{15,18}$ | 15-18位数字 |
| |
| 验证是否全中文 | ^[\u4e00-\u9fa5]+$ |
|