正则表达式总结

       对正则表达式的印象总结为一句话就是:看似一堆乱码,功能非常强大。    

 

1.       .(点号) 匹配任何单个的字符、字母、数字甚至是 . 字符本身。

 

2.          [ ] 匹配方括号中多个字符中的某一个,如[ns]匹配字符ns[A-Z]匹配大写字符AZ中的一个,[0-9]匹配数字09中的一个,如此类似还有[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编辑  收藏  举报

导航