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

正则表达式初窥

作者: 把早晨六点的太阳留给我 | 来源:发表于2018-03-30 17:46 被阅读0次

    搜索字符串

    match从头匹配 search匹配一次 findall查询所有 【finditer 迭代器形式返回next()显示第几个】

    方法

    split支持字符串截取
    sub 替换字符串
    group()表示拿到分组后的结果

    import re
    str = zhaoyu
    re.match(str,"zhaoyu")#显示地址
    re.match(str,"zhaoyu").group()#显示字符串
    group用法[想提取的数据可用括号括起来]
    res = re.match("\d+(567)\d+","152567444")
    res
    <_sre.SRE_Match object; span=(0, 9), match='152567444'>
     res.group()
    '152567444'
    res.group(1)[第几个括号Juin写几]
    '567'
    

    正则表达式 str = zhaoyu [match从头匹配]
    . 匹配任意符号(除了换行符\n)
    re.match("....yu",str)
    <_sre.SRE_Match object; span=(0, 6), match='zhaoyu'>

    \d 表示数字

    re.match ("\d","1111ddd")
    <_sre.SRE_Match object; span=(0, 1), match='1'>

    re.match ("\d\d\d","1111ddd")
    <_sre.SRE_Match object; span=(0, 3), match='111'>

    re.match("我今年\d\d岁了","我今年55岁了")
    <_sre.SRE_Match object; span=(0, 7), match='我今年55岁了'>

    re.match("我今年\d\d$","我今年55")
    <_sre.SRE_Match object; span=(0, 5), match='我今年55'>

    \D 表示非数字

    re.match ("\D","@#$%^&")
    <_sre.SRE_Match object; span=(0, 1), match='@'>

    \w 表示匹配大小写字母

    re.match ("\w\w\w","aVw")
    <_sre.SRE_Match object; span=(0, 3), match='aVw'>

    re.match ("\w\w\w","aV过")【各国语言】
    <_sre.SRE_Match object; span=(0, 3), match='aV过'>

    \W 表示匹配所有的特殊字符

    re.match ("\W\W\W","+-")
    <_sre.SRE_Match object; span=(0, 3), match='+-
    '>
    re.match ("\W\W\W","+-A*")

    \s 表示匹配空格 Tab \t

    re.match ("\s\s\s"," ")
    <_sre.SRE_Match object; span=(0, 3), match=' '>

    re.match("\s","\n我今年55")
    <_sre.SRE_Match object; span=(0, 1), match='\n'>

    re.match("\s","\r我今年55")
    <_sre.SRE_Match object; span=(0, 1), match='\r'>

    \S 表示匹配非空格

    re.match ("\S\S\S","LIU")
    <_sre.SRE_Match object; span=(0, 3), match='LIU'>

    ^ 表示以xx开头

    re.match ("^a.*","abcde")
    <_sre.SRE_Match object; span=(0, 5), match='abcde'>

    re.match ("^a*","abcde")
    <_sre.SRE_Match object; span=(0, 1), match='a'>

    re.match ("^a.","abcde")
    <_sre.SRE_Match object; span=(0, 2), match='ab'>

    $ 以什么结尾

    re.match (".sd$","abcdsd")
    <_sre.SRE_Match object; span=(0, 6), match='abcdsd'>
    【以a开头以sd结尾】
    re.match ("^a.
    sd$","abcdsd")
    <_sre.SRE_Match object; span=(0, 6), match='abcdsd'>

    \b 匹配单词

    re.match(".\bgood\b.","get good day")
    <_sre.SRE_Match object; span=(0, 12), match='get good day'

    [01123456789] 【0-9】【a-z】只能用于数字字母[0-9a-zA-Z]
    (开头是这些中的一个就可以匹配成功)

     re.match ("[0\123456]\w*","0")
    <_sre.SRE_Match object; span=(0, 1), match='0'>
    >>> re.match ("[0\123456]\w*","5")
    <_sre.SRE_Match object; span=(0, 1), match='5'>
    
    re.match("[0-9a-zA-Z]","5aA10")
    <_sre.SRE_Match object; span=(0, 1), match='5'>
    

    \\表示
    str = “c:\n\b”

    * 匹配0-多
    +匹配1-多
    ?匹配可以有,可以没有,但只多1位
    {m} 表示m位
    {m,} 表示至少m位
    {m,n}表示在这个区间内,最少5位,最多8位

    写在【】里表示取反
    re.match("[^123asc]","123")

    re.match("[^123asc]","vvv")
    <_sre.SRE_Match object; span=(0, 1), match='v'>

    相关文章

      网友评论

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

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