美文网首页
正则匹配search,findall,compile,match

正则匹配search,findall,compile,match

作者: Frankli9 | 来源:发表于2017-11-08 15:40 被阅读0次

    转自:https://zhuanlan.zhihu.com/p/26701898


    re.search(pattern, string, flags=0)在一个字符串中搜索匹配正则表达式的第一个位置返回match对象? pattern : 正则表达式的字符串或原生字符串表示? string : 待匹配字符串? flags : 正则表达式使用时的控制标记

    str1='hello , world ,life is short ,use Python .WHAT? 'a=re.search(r'\w+',str1)print(a.group())  # hello

    常用的第三个参数 flags:re.IGNORECASE:忽略大小写,同 re.I。
    re.MULTILINE:多行模式,改变和$的行为,同re.M。
    re.DOTALL:点任意匹配模式,让’.’可以匹配包括’\n’在内的任字符,同 re.S。
    我们来使用一下控制标记试试:
    str1 = 'hello , world ,life is short ,use
    b = re.search(r'w.+D',str1,re.I)
    print(b.group())  #  world

    re.findall(pattern, string, flags=0)搜索字符串,以列表类型返回全部能匹配的子串∙ pattern : 正则表达式的字符串或原生字符串表示∙ string : 待匹配字符串∙ flags : 正则表达式使用时的控制标记'

    c=re.findall(r'\w+',str1)
    print(c)
    #['hello', 'world', 'life', 'is', 'short', 'use', 'Python', 'WHAT']

    re库的另一种用法

    str2='hssso'
    str1 = 'hello , world ,life is short ,use
    re1=re.compile(r'h.{3}o')
    print(re1.findall(str1))
    print(re1.findall(str2)) 
    # ['hello']
    # ['hssso']

    match对象是一次匹配的结果,他包含了很多的信息:
    match 对象的属性
    .string : 待匹配的文本
    .re : 匹配时使用的patter对象(正则表达式)
    .pos : 正则表达式搜索文本的开始位置
    .endpos : 正则表达式搜索文本的结束位置
    d=re.search(r'e.+d',str1)
    print(d.group())# ello ,
    worldprint(d.string)# hello , world ,life is short ,use Python .WHAT?
    print(d.re)# re.compile('e.+d')
    print(d.pos)# 0
    print(d.endpos)# 48

    相关文章

      网友评论

          本文标题:正则匹配search,findall,compile,match

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