• python re.findall 使用


    python re.findall 使用

     1 import re
     2 
     3 #w 匹配字母数字及下划线
     4 print(re.findall('w','hello alan _god !@^&#^$^!*&(*'))
     5 
     6 #W 匹配非字母数字下划线
     7 print(re.findall('W','hello alan _god !#@!#$(#*'))
     8 #s 匹配空白字符
     9 print(re.findall('s',"alan and god *& YUN CHINA"))
    10 #S  匹配非空白字符
    11 print(re.findall('S',"alan and god *& YUN CHINA"))
    12 #d 数字与 D 非数字
    13 print(re.findall('d',"2018年9月8日16:54:30alan and god *& YUN CHINA1949"))
    14 print(re.findall('D',"20182018年9月8日16:54:20alan and god *& YUN CHINA1949"))
    15 
    16 #A 匹配字符串开始
    17 print(re.findall('ACH',"CH2018年9月8日16:54:30alan and god *& YUN CHINA1949"))
    18 # 匹配字符串结束
    19 print(re.findall('Z',"20182018年9月8日16:54:20alan and god *& YUN CHINA1949ZZ"))
    20 
    21 #^ 字符串开头 与 $字符串结尾
    22 
    23 print(re.findall('^a',"alan and god *& YUN CHINA"))
    24 print(re.findall('NA$','alan and god *& YUN CHINA'))
    25 #.  匹配任意
    26 print(re.findall('an.','alan and angod *& YUN CHINA'))
    27 print(re.findall('a.a','a a alan and a&a ata aa'))
    28 
    29 #* 匹配0或多个
    30 print(re.findall('an*','a a alan and god  anSB anang *& YUN CHINA'))
    31 print(re.findall('an*','alan and a&a ata a a'))
    32 
    33 #? 匹配0或1------------------------
    34 print(re.findall('ag?','age avg agre amg a'))
    35 print(re.findall('agg?','aggge avgagg aggre amg ag'))
    36 
    37 #匹配所有包含小数在内的数字
    38 print(re.findall('d+.?d*','123adf 1.33663fsdf13fsdf1fsdf3'))
    39 
    40 #.*默认为贪婪匹配
    41 print(re.findall('a.*d','adss andgod930 axds9kidg'))
    42 
    43 #.*?为非贪婪匹配
    44 print(re.findall('a.*?d','andgod930 axds9kidg ad aa'))
    45 
    46 #+ 1或多
    47 print(re.findall('and+','andgod930 axds9kidg an and anddd andddSSS'))
    48 
    49 #{n,m}  >=n,<m
    50 print(re.findall('an{2}','andgod930 axds9kidg an annd anndd anddd andddSSS'))
    51 print(re.findall('an{1,3}','andgod930 axds9kidg an annd anndd anddd andddSSS'))
    52 print(re.findall('ab{1,}','abbb abs a ab bb'))
    53 print(re.findall('ab{0,}','abbb abs a ab bb abb'))
    54 
    55 #[]内的都为普通字符了,且如果-没有被转意的话,应该放到[]的开头或结尾
    56 print(re.findall('a[1*-]b','a1b a*b a-b asb aab allb a--b'))
    57 
    58 #[]内的^代表的意思是取反
    59 print(re.findall('a[^1*-]b','a1b a*b a-b a=b'))
    60 
    61 #[]内的0-9 之间匹配 0到9 之间的整数
    62 print(re.findall('a[0-9]b','a1b a*b a-b a=b a0b a00b '))
    63 
    64 #[]内的a-z 之间匹配 小写字母
    65 print(re.findall('a[a-z]b','a1b a*b A-D a-b a=b aeb aAb abb acb azb'))
    66 
    67 #[]内的A-Z 之间匹配 大写字母
    68 print(re.findall('[A-Z]','a1b a*b A-D a-b a=b aeb aAb abb acb azb'))
    69 
    70 #[]内的a-z 或者 A-Z 之间匹配 大写字母 与小写字母
    71 print(re.findall('a[a-zA-Z]b','a1b a*b a-b a=b aeb aEb aab aAb aZb azb'))
    72 
    73 
    74 # 与  与 \
    75 
    76 #对于正则来说a\c确实可以匹配到ac,但是在python解释器读取a\c时,会发生转义,然后交给re去执行,所以抛出异常
    77 print(re.findall('a\c','ac')) 
    78 #r代表告诉解释器使用rawstring,即原生字符串,把我们正则内的所有符号都当普通字符处理,不要转义
    79 print(re.findall(r'a\c','ac a\c a c ac'))
    80 #和上面的结果一样
    81 print(re.findall('a\\c','ac a\c '))
    82 
    83 #() 分組
    84 print(re.findall('ab+','ababab123 abc abd'))
    85 
    86 #匹配到末尾的ab123中的ab
    87 print(re.findall('(ab)+123','abab123 abc123 abb123 aa1234 ab1234'))
    88 
    89 #findall的结果不是匹配的全部内容,而是组内的内容,?:可以让结果为匹配的全部内容
    90 print(re.findall('(?:ab)+123','ababab123 abc123 abb123 aa1234 ab1234'))
    91 
    92 print(re.findall('href="(.*?)"','<a href="http://www.baidu.com">百度</a> <a href="http://www.google.com">go</a> <a href="http://www.yunhua.com">go</a>'))
    93 
    94 print(re.findall('href="(?:.*?)"','<a href="http://www.baidu.com">百度</a> <a href="http://www.google.com">go</a> <a href="http://www.yunhua.com">go</a>'))
  • 相关阅读:
    2020年捌月份生活随笔
    2020年柒月份生活随笔
    2020年陆月份生活随笔
    第二次:郑州银行杯|2019郑州国际马拉松
    第一次:海尔|2017年青岛马拉松
    专项测试技能和线上线下监控
    实用
    Oracle 数据库 有用的sql语句
    Qt demo
    springboot demo
  • 原文地址:https://www.cnblogs.com/lisa2016/p/11482424.html
Copyright © 2020-2023  润新知