正则表达式总结
对正则表达式的印象总结为一句话就是:看似一堆乱码,功能非常强大。
1. .(点号) 匹配任何单个的字符、字母、数字甚至是 . 字符本身。
2. [ ] 匹配方括号中多个字符中的某一个,如[ns]匹配字符n或s,[A-Z]匹配大写字符A到Z中的一个,[0-9]匹配数字0到9中的一个,如此类似还有[a-z]、[A-F]等。
3. ^ 取非匹配,只有在[ ]内的第一个位置时才表示“取非”,如[^0-9]。如果^是整个正则表达式的第一个字符则表示匹配开头。
4. (空格) 匹配空格
空白元字符
\b |
回退(并删除)一个字符(BackSpace 键) |
\f |
换页符 |
\n |
换行符 |
\r |
回车 |
\t |
制表符(Tab) |
\v |
垂直制表符 |
5. \d 等同于[0-9]
\D 等同于[^0-9]
6. \w 等同于[a-zA-Z0-9]
\W 等同于[^a-zA-Z0-9]
7. \s 任何一个空白字符,等同于[\f\n\r\t\v]
\S 任何一个非空白字符,等同于[^\f\n\r\t\v]
8. \x 匹配十六进制数
\t 匹配八进制数
9. + 匹配次数大于等于1
10. * 匹配次数大于等于0
11. ? 匹配一次或0次
12. 精确设定匹配次数:
{m} 匹配m次
{m,n} 匹配m到n次
{m,} 至少匹配m次
13. 防止过度匹配
贪婪性元字符 |
懒惰型元字符 |
* |
*? |
+ |
+? |
{m,} |
{m,}? |
14. \b 用来匹配一个单词的开头或结尾。注意,\b只匹配位置,不匹配字符,例如,\bcat\b只匹配单词cat,匹配到的长度是3而不是5
\B 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
15. ^ 定义字符串的开头,只有在[]内的第一个位置是表示“求非”
16. (?m) 分行匹配模式。必须出现在整个模式的最前面。
17. () 被括起来的内容为一个子表达式。
18. 回溯引用:\num匹配模式中的第num个子表达式(num >= 1)。\0用来代表整个表达式。
19. 向前查找:?=
例如表达式(?=:)表示向前找到 : ,但匹配结果不包括 : 。举例来说,字符串为”http:”(不包括引号),表达式.+(?=:)匹配”http”,而模式.+(:)匹配”http:”。
注意,任何一个字表达式都可以加上一个?=前缀变为一个向前查找表达式。
20. 向后查找:?<=
用法同向前查找?=
21. 对前后查找取非
?= |
正向前查找 |
?! |
负向前查找 |
?<= |
正向后查找 |
?<! |
负向后查找 |
附常用正则表达式
用户名
/^[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})$/
URL
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址
/^(?:(?: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+\/>)$/
Unicode编码中的汉字范围
/^[\u2E80-\u9FFF]+$/
posted on 2013-12-20 20:20 balabala已被注册 阅读(611) 评论(0) 编辑 收藏 举报