美文网首页
初学正则表达式

初学正则表达式

作者: 转身丶即天涯 | 来源:发表于2017-12-13 18:09 被阅读5次

    Python从1.5版本后增加了re模块,re模块包含了处理正则表达式的函数。
    这些函数一般使用一个模式字符串作为第一个参数。
    可以先看菜鸟教程30分钟入门正则表达式
    再看python3正则表达式
    下面记录一下常用方法。

    re.match()函数

    re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
    语法:re.match(pattern, string, flags=0)


    image.png

    可以看到,如果成功匹配会返回一个SRE_Match对象,这个对象有两个属性,span和match。
    span返回的是一个含有两个元素的元组,分别是成功匹配的字符串的其实索引和结束索引。
    match中的值是模式字符串的值,就是re.match()函数的第一个参数pattern。
    当我们匹配"com"时,返回了None,可以发现,不是其实位置开始的匹配,就算包含也是返回None的。重点是起始匹配,也就是从第一个字符就要匹配。

    算了,直接写几个例子,留着以后用(或者改进)
    1、匹配手机号码
    已知条件:手机号是11位的,头3位由移动,联通,电信规定,后8位0-9
    前2位有,13,14,15,17,18
    phone_reg = "^1[3-5,7-8]\d{9}$"
    还有一个复杂版的,但是比我这个全面多了。引用出处在这里
    phone_reg2 = "134[0-8]\d{7}$|13[4]\d{8}$|14[5-9]\d{8}$|15[4]\d{8}$|16[6]\d{8}$|17[0-8]\d{8}$|^18[\d]"
    "{9}$|^19[8,9]\d{8}$"

    2、匹配邮箱
    规则是:以一个或者多个任意字符开始,然后是@,然后是一个或者多个字符,再是.com
    email_reg = "^\w+@([a-zA-Z0-9])+.com$"

    相关文章

      网友评论

          本文标题:初学正则表达式

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