python正则表达式查找字符串

时间:2025-02-11 13:23:38

 

 

# \d   数字        \D 非数字
# \w   单词        \W 非单词
# \s   空白字符    \S  非空白字符
# {}   数量词
# *    匹配数量词(匹配0次或者无限次)
# +    匹配数量词(匹配1次或者无限次)
# ?    匹配数量词(匹配1次或者1次)


import re
s = 'abc, acc, adc, aec, afc, ahc'

#匹配数字
r = ('\d',s)

#匹配非数字
r = ('\D',s)

#匹配单词
r = ('\w',s)

#匹配非单词
r = ('\W',s)

#匹配abc adc单词
r = ('a[bd]c',s)

#匹配acc, adc, aec, afc单词 
r2 = ('a[c-f]c',s)

#匹配非abc, adc单词
r = ('a[^bd]c',s)

#匹配单词(由大小写字母,数字,下划线组成)
r = ('[A-Za-z0-9_]',s)


a = 'python  111java7823php'
#匹配单词python java 等单词(花括号里面的第一个参数是a-z的次数),花括号里面的是数量词
#分析:python有6个字符,php有3个字符,所以数量词的范围是3-6
r = ('[a-z]{3,6}',a)

r = ('([a-z]{3,6})',a)#后面打印r的时候只打印括号里面的东西



#贪婪模式正则匹配与非贪婪正则匹配
r = ('[a-z]{3,6}',a)  #贪婪匹配(最多可以匹配6个字符)
r = ('[a-z]{3,6}?',a) #非贪婪匹配(只匹配3个字符)




c = 'pytho0python1pythonn2'
r = ('python*',c)  #n的重复次数为0次或者无限次

r = ('python+',c)  #n的重复次数为1次或者无限次

r = ('python?',c)  #n的重复次数为1次或者0次