python findall用法_python re.findall 使用

1 importre2

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 #\Z 匹配字符串结束

19 print(re.findall('Z\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,

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确实可以匹配到a\c,但是在python解释器读取a\\c时,会发生转义,然后交给re去执行,所以抛出异常

77 print(re.findall('a\\c','a\c'))78 #r代表告诉解释器使用rawstring,即原生字符串,把我们正则内的所有符号都当普通字符处理,不要转义

79 print(re.findall(r'a\\c','a\c a\\c a c ac'))80 #和上面的结果一样

81 print(re.findall('a\\\\c','a\c 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="(.*?)"','百度 go go'))93

94 print(re.findall('href="(?:.*?)"','百度 go go'))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值