美文网首页
正则表达式

正则表达式

作者: Kloar | 来源:发表于2016-07-21 17:06 被阅读49次

    为什么使用正则表达式:

    思考:假如自己做了一个登录界面,怎么判断用户输入的一个邮箱内容是正确的邮箱格式,怎么判断用户输入的电话号码是正确的电话号码格式。

    正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

    邮箱正则表达式:

    ^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$

    手机号码正则表达式

    ^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$

    身份证正则表达式

    (^\d{15}$)|(^\d{17}([0-9]|X)$)

    其他

    提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

    提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

    提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)

    提取信息中的中国手机号码:(86)*0*13\d{9}

    提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

    提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

    提取信息中的中国邮政编码:[1-9]{1}(\d+){5}

    提取信息中的中国身份证号码:\d{18}|\d{15}

    提取信息中的整数:\d+

    提取信息中的浮点数(即小数):(-?\d*)\.?\d+

    提取信息中的任何数字 :(-?\d*)(\.\d+)?

    提取信息中的中文字符串:[\u4e00-\u9fa5]*

    提取信息中的双字节字符串 (汉字):[^\x00-\xff]*

    1,行定位符(^和$)

    行定位符涌来描述字符串的边界,^表示从匹配内容的开头进行匹配,$表示匹配到匹配内容的结尾。

    例如:^w    ^wc    k$    kfc$

    如果匹配字符可以出现在匹配内容的任何位置 wc 即可

    思考:^3$这是个啥?

    2,单词界定符号(\b,\B)

    \b表示要查找的字符串为一个单词的开始或者结束:\bwc\b;\B表示匹配的字符串不是完整单词,而是单词一部分:\Bwc\B.

    思考:\bwc\B

    3,字符类([])

    []表示一个字符允许匹配的不同情况。比如wc不区分大小写匹配:[wW][cC],[0123456789],[abcdefghijklmnopqrstuvwxyz]

    思考:^[0123456789]$

    4,选择字符(|)

    跟3很相似

    [w|W][c|C].

    提示,中间用,隔开也跟|相似。

    5,连字符(-)

    连字符表示某个字符允许匹配的字符范围

    [0-9],表示从0到9

    [a-z],表示从a到z

    [A-Z],表示从A到Z

    思考:[a-z0-9] [A-Za-z0-9_]

    6,排除字符([^])

    表示匹配不符合规则命名的变量

    [^a-z]

    7,限定符(? * + {n,m})

    ?匹配前面的字符零次或者一次

    *  匹配前面的字符零次或者多次

    + 匹配前面的字符一次或者多次

    {n} 匹配前面的字符n次

    {n,} 匹配前面的字符至少n次

    {n,m} 匹配前面的字符至少n次,最多m次

    8,点字符(.)

    匹配除了换行以外的任意一个字符

    ^c.t$

    9,转义字符(\)

    [0-9]{3}(\.[0-9]{3}){3}

    10 反斜线(\)

    除了转义字符\还有更多功能。

    括号字符()

    作用1,改变限定字符的作用范围,如| * ^等:

    (thir|four)th

    作用2,分组也叫子表达式

    [0-9]{3}(\.[0-9]{3}){3}

    12,反向引用

    反向引用,就是依靠子表达式的“记忆”功能来匹配连续出现的字串或字母。如匹配连续两个it,首先将单词it作为分组,然后在后面加上“\1”即可。格式为:

    (it)\1

    这就是反向引用最简单的格式。如果要匹配的字串不固定,那么就将括号内的字串写成一个正则表达式。如果使用了多个分组,那么可以用“\1”、“\2”来表示每个分组(顺序是从左到右)。如:

    ([a-z])([A-Z])\1\2

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/tkbbjttx.html