美文网首页
re模块下的相关知识

re模块下的相关知识

作者: 优秀的人A | 来源:发表于2019-01-27 11:10 被阅读16次

    正则:正规表达式 用来处理字符串

    单字符匹配

    . 除换行之外的任意字符
    \d 表示数字
    \D 匹配非数字
    \w 匹配单词字符[a-z,A-Z,0-9]
    \W 匹配非单词字符
    \s 匹配空白字符,空格,\n ,\t
    \S 匹配非空白字符
    ^ 匹配以什么开头
    & 匹配以什么结尾
    [0-9] 等价于\d 匹配0-9

    多字符匹配(贪婪模式)

    * 匹配*前面的字符任意次数(0-无限)
    + 匹配+前面的字符至少1次
    ? 匹配?前面的字符0-1次
    {n,m} 匹配n到m次

    • 贪婪和非贪婪的区别:贪婪模式尽可能多的匹配,非贪婪模式尽可能少的匹配

    多字符匹配(非贪婪模式)

    *?
    +?
    ??

    其他

    () 分组
    | 或
    \ 转义字符

    re 模块下的方法

    import re
    # re.compile():构建正则表达式对象
    # re.match():从起始位置开始匹配,单次匹配,如果匹配到结果立即返回,否则返回None
    str = 'adsajkdhska'
    pattern = re.compile('d')
    resulat = re.match(pattern,str)
    if resulat:
       print(resulat.group())
    
    #re.search():在整个字符串中进行匹配,单次匹配,匹配到结果立即返回,否则返回None
    result = re.search(pattern,str)
    print(result.group())
    
    # re.findall():匹配出整个字符串中,所有符合正则规则的结果,返回的是一个列表
    result = re.findall(pattern,str)
    print(result)
    
    #re.finditer():匹配出整个字符串中所有符合正则规则的结果,返回的是一个可迭代对象
    result = re.finditer(pattern,str)
    print(type(result))
    for i in result:
        print(i,type(i))
        print(i.group())
    
    # re.sub(): 根据正则表达式进行字符串转换
    new_str = re.sub(pattern,'h',str)
    print(new_str)
    
    # re.split(): 根据正则表达式进行分割,得到的是一个列表
    result = re.split(pattern,str)
    print(result)

    相关文章

      网友评论

          本文标题:re模块下的相关知识

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