正则表达式总结

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

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

 

2.          [ ] 匹配方括号中多个字符中的某一个,如[ns]匹配字符ns[A-Z]匹配大写字符AZ中的一个,[0-9]匹配数字09中的一个,如此类似还有[a-z][A-F]等。

 

3.        取非匹配,只有在[ ]内的第一个位置时才表示“取非”,如[^0-9]。如果^是整个正则表达式的第一个字符则表示匹配开头。

 

4.         (空格匹配空格

                             空白元字符



回退(并删除)一个字符(BackSpace 键)

f

换页符

换行符

回车

制表符(Tab)

v

垂直制表符

 

5.        d   等同于[0-9]

    D   等同于[^0-9]

 

6.        w   等同于[a-zA-Z0-9]

    W  等同于[^a-zA-Z0-9]

 

7.        s   任何一个空白字符,等同于[f v]

   S   任何一个非空白字符,等同于[^f v]

 

8.        x   匹配十六进制数

       匹配八进制数

 

9.        +    匹配次数大于等于1

 

10.    *    匹配次数大于等于0

 

11.    ?  匹配一次或0

 

12.    精确设定匹配次数:

  {m}        匹配m

  {m,n}     匹配m到n次

  {m,}         至少匹配m次

 

13.    防止过度匹配

贪婪性元字符

懒惰型元字符

*

*?

+

+?

{m,}

{m,}?

 

14.        用来匹配一个单词的开头或结尾。注意,只匹配位置,不匹配字符,例如,cat只匹配单词cat,匹配到的长度是3而不是5

   B     匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”

 

15.    ^     定义字符串的开头,只有在[]内的第一个位置是表示“求非”

 

16.    (?m) 分行匹配模式。必须出现在整个模式的最前面。

17.    ()     被括起来的内容为一个子表达式。

 

18.    回溯引用:num匹配模式中的第num个子表达式(num >= 1)用来代表整个表达式。

 

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]+$/

原文地址:https://www.cnblogs.com/kane1990/p/regex_notes.html