美文网首页
python 正则表达式基本使用-定义与规则

python 正则表达式基本使用-定义与规则

作者: Amy_yqh | 来源:发表于2021-07-18 11:30 被阅读0次

    python的正则表达与其他语言的正则一样,以下介绍一下基本用法,
    文档:https://docs.python.org/zh-cn/3.7/library/re.html

    引入
    import re
    

    正则一般有三种方式

    一、普通字符

    str = '$abc123def qwe'
    reg = 'abc'
    res = re.search(reg, str).group()
    print(res)
    

    二、转义字符

    (1)'\w' 代表单个字母、数字、下划线
    (2)'\W' 代表单个非字母、数字、下划线
    (3)'\d' 代表单个数字
    (4)'\D' 代表单个非数字
    (5)'\s' 代表单个空格、制表符
    (6)'\S' 代表单个非空格、制表符
    (7)'\w\w\w\d' 组合使用
    str = '$abc123def qwe'
    reg = '\w'
    reg = '\W'
    reg = '\d'
    reg = '\D'
    reg = '\s'
    reg = '\S'
    
    res = re.search(reg, str).group()
    print(res)
    

    三、特殊字符 . * + ? {} [] () ^ $

    (1) . 单个的任意字符,除换行符(\n)外
    str = 'abc1233def qwe'
    reg = '.'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    (2) * 代表匹配次数,任意次(包括0次)

    如果一开始就不匹配,就返回0 次,开始如果就匹配,一直匹配到不满足条件为止

    str = 'abc1233def qwe'
    reg = '\w*'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    (3)+ 代表匹配次数,至少匹配一次。

    如果一开始不匹配,继续往后找,直到不匹配

    str = 'abc1233def qwe'
    reg = '\w+'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    (4)?拒绝贪婪,只要前面的匹配规则达成就返回

    reg = '\w+?' 匹配到一次就返回
    reg = '\w*?' 不用匹配就返回0

    str = 'abc1233def qwe'
    reg = '\w+?'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    str = 'abc1233def qwe'
    reg = '\w*?'
    res = re.search(reg, str)
    print(res.group())
    

    返回空

    (5){}代表匹配次数

    {4}一个数字,代表必须匹配的次数
    {2,5}区间,代表至少2,至多5

    str = 'abc1233def qwe'
    reg = '\w{2}'
    # reg = '\w{2,5}'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    (6)[ ] 代表字符的范围,

    [a-z,A-Z,0-9,_]

    str = 'abc1233def qwe'
    reg = '[a-z]'
    res = re.search(reg, str)
    print(res.group())
    
    image.png
    (7)子组,括号中的表达式首先作为整个正则的一部分,另外会把符合小括号中的内容在单独作为一个分组

    reg= '\w+(\d{4})(\w+)'

    str = 'abc1233def qwe'
    reg = '\w+(\d{4})(\w+)'
    res = re.search(reg, str)
    print(res.group())
    print(res.groups())
    
    image.png
    (8) ^xx 以什么开头, xx$ 以什么结尾
    str = 'abc1233def qwe'
    reg = '^a'
    # reg = 'e$'
    res = re.search(reg, str)
    print(res.group())
    
    image.png

    相关文章

      网友评论

          本文标题:python 正则表达式基本使用-定义与规则

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