zoukankan      html  css  js  c++  java
  • Python3-re模块-正则表达式

    Python3中的re模块提供与Perl中类似的正则表达式匹配操作

      ^

        匹配字符串的开头

      $

        匹配字符串的结尾

      .

        匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符

      [...]

        用来表示一组字符,例如[amk]匹配 a 或 m 或 k

      [^...]

        匹配不在[]中的字符,例如[^abc]匹配除了a,b和c之外的字符

      re*

        匹配0次或多次前面的表达式

      re+

        匹配1次或多次前面的表达式

      re?

        匹配0次或1次前面的表达式

      re{n}

        n为数字,匹配n次前面的表达式

      re{n, m}

        n,m为数字,匹配n到m次前面的表达式,最少n次,最多m次

      re_a|re_b

        匹配表达式re_a或表达式re_b

      (re)

        全匹配括号内的表达式,也表示一个组

      w

        匹配字母数字及下划线,相当于[A-Za-z0-9]

      W

        匹配非字母数字及下划线,相当于[^A-Za-z0-9]

      d

        匹配一个数字字符,相当于[0-9]

      D  

        匹配一个非数字字符,相当于[^0-9]

      s

        匹配任何空白字符,相当于[ f v],注意f的前面有个空格

      S

        匹配非任何空白字符,相当于[^ f v],注意f的前面有个空格

    re模块常用的方法

      re.match(pattern, string, flags=0)

        如果在字符串的开头的零个或更多字符匹配正则表达式模式,将返回相应的MatchObject实例,返回None则与模式不匹配

      re.search(pattern, string, flags=0)

        扫描字符串,寻找的第一个由该正则表达式模式产生匹配的位置,并返回相应的MatchObject实例,返回None则与模式不匹配

      re.sub(pattern, repl, string, count=0)

        匹配正则表达式成功后将其替换成指定字符串

        pattern为匹配的正则表达式,repl为要替换的字符,string为扫描的字符串,count为替换次数

      re.fullmatch(pattern, string, flags=0)

        参考re.match(),只不过它是全匹配整个字符串,re.match()只匹配开头

      re.split(pattern, string, maxsplit=0, flags=0)

        利用正则表达式进行字符串分割

      re.purge()

        清除正则表达式缓存

      注:

        flags参数是匹配模式,比如可以忽略大小写进行匹配,很少用,具体参考:

        re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None

        re.search匹配整个字符串,直到找到一个匹配

        pattern既可以是一个正则表达式字符串,也可以是通过re.compile()方法编译过的正则对象,有需要可以深入了解

    import re
    
    phone_number_regex = r"^1[34578]d{9}$"                      # 中国大陆手机号简单正则表达式
    phone_number = "1234567"
    match_object = re.match(phone_number_regex, phone_number)     
    if match_object:
        print("这是一个手机号!")
    else:
        print("这是一个非法手机号!")
    1.正则表达式验证手机号
    import re
    
    # 用户名要求由字母、数字和下划线组成,且不能以数字和下划线开头,最低6位,最高不能超过16位
    user_name_regex = r"^[a-zA-Z]w{5,15}$"
    user_name = "q12@3_4_5"
    match_object = re.match(user_name_regex, user_name)
    if match_object:
        print("这是一个合法用户名!")
    else:
        print("这是一个非法用户名!")
    2.正则表达式验证用户名

      

  • 相关阅读:
    golang语言中os/signal包的学习与使用
    golang语言中os/exec包的学习与使用
    go语言使用go-sciter创建桌面应用(七) view对象常用方法,文件选择,窗口弹出,请求
    go语言使用go-sciter创建桌面应用(六) Element元素操作和Event事件响应
    go语言使用go-sciter创建桌面应用(五) 加载元素资源
    go语言使用go-sciter创建桌面应用(四) 固定窗口大小
    go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用
    go语言使用go-sciter创建桌面应用(二) ui元素查找,增加,删除,修改
    go语言使用go-sciter创建桌面应用(一) 简单的通过html,css写ui
    go语言net包rpc远程调用的使用
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/6598060.html
Copyright © 2011-2022 走看看