python正则表达式01--贪心算法和非贪心算法findall()

Posted 了解2号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python正则表达式01--贪心算法和非贪心算法findall()相关的知识,希望对你有一定的参考价值。

import re

st = asdfasxxixxdafqewxxlovexxsadawexxyouxxas

# .
#点匹配除换行符外的任意字符
a0 = re.findall(xx.,st)
#print(a0)
#[‘xxi‘, ‘xxd‘, ‘xxl‘, ‘xxs‘, ‘xxy‘, ‘xxa‘]

a1 = re.findall(xx..,st)
#print(a1)
#[‘xxix‘, ‘xxlo‘, ‘xxsa‘, ‘xxyo‘, ‘xxas‘]

# *
#星匹配前面的一个字符一次或多次
b0 = re.findall(x*,st)
#print(b0)
#[‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘xx‘, ‘‘, ‘xx‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘xx‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘xx‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘xx‘, ‘‘, ‘‘, ‘‘, ‘xx‘, ‘‘, ‘‘, ‘‘]

#
#问号匹配前面的一个字符0次或者1次
c0 = re.findall(x?,st)
#print(c0)
#[‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘‘, ‘‘, ‘x‘, ‘x‘, ‘‘, ‘‘, ‘‘]


#贪心算法(点星)尽可能多的匹配 -- .*
#尽可能长的匹配字符串
a = re.findall(xx.*xx,st)
#print(a)

#运行结果
#[‘xxixxdafqewxxlovexxsadawexxyouxx‘]


#非贪心算法(点星问号)少食多餐 -- .*?
#返回列表
b = re.findall(xx.*?xx,st)
#print(b)
#运行结果
#[‘xxixx‘, ‘xxlovexx‘, ‘xxyouxx‘]

#非贪心算法(点星问号)少食多餐 -- .*?
#返回列表
c = re.findall(xx(.*?)xx,st)
#print(c)
#运行结果
#[‘i‘, ‘love‘, ‘you‘]

# re.S 匹配换行符

ss = ‘‘‘asdfasxxixxdafqewxxlove
xxsadawexxyouxxas‘‘‘
d = re.findall(xx(.*?)xx,ss)
e = re.findall(xx(.*?)xx,ss,re.S)
print("无re.S:%s\n有re.S:%s"%(d,e))
#运行结果
#无re.S:[‘i‘, ‘sadawe‘]
#有re.S:[‘i‘, ‘love\n‘, ‘you‘]

贪心算法,非贪心算法

以上是关于python正则表达式01--贪心算法和非贪心算法findall()的主要内容,如果未能解决你的问题,请参考以下文章

python 爬虫入门之正则表达式 一

关于python爬虫经常要用到的一些Re.正则表达式

正则表达式

Python模块-re

利用正则表达式实现python强口令检测

对着爬虫网页HTML学习Python正则表达式re