www.jbmf.net > rE FinDAll

rE FinDAll

你的Python程序输出结果是对的.re.split是以re.compile中的正则表达式对字符串进行切分.re.findall是以re.compile中的正则表达式对字符串进行匹配.就拿你的例子来说吧,re.split是以数字为边界对字符串'one1two2three3four4'进行切分,得到['one','two','three','four','']五个字符串re.findall是匹配字符串'one1two2three3four4'中的所有数字,得到['1','2','3','4']四个数字

一个事查询 多用于机械方面 例如计算机的查询就是serch 一个事查找 比喻人去找东西或者事物

这个是正则表达式,意思大致上是 找到 数字+字母d+[a-zA-Z]中字母就是大小写字母均可以的意思再+'a'这样的结构字符串.

[ ] 中的^表示取反,“非”的意思.[^=;] 匹配 不为等号=且不为分号;的一个字符* 表示前面这个字符出现0次或多次

Python中字符串前面加上 r 表示原生字符串,与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰.假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠.Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\\"表示.同样,匹配一个数字的"\\d"可以写成r"\d".有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观.

括号里面的两个是参数,位置不能调换.findall是re对象里的一个方法,这个方法需要2个参数:reg,html.这两个参数应该在上面的代码有定义.你可以把“方法”理解成一个生产机器,“参数”就是原材料.那么方法的返回值就是生产机器生产出来的产品.

[\d]等同于[0-9]或者\d表示一个数字字符[\d]{2,}表示两个或两个以上数字字符这个正则表达式匹配两个或两个以上数字字符组成的字符串完整的Python程序如下import rec='7134*16230+816*(7134+16230)='r = re.findall(r'[\d]{2,}',c)print(r)

关键在于查找时间的正则表达式,也就是程序中reg变量的字符串,你可以去了解一下 import re s = """<a class="time" target="_blank" href="">昨天 00:26</a><a class="time" target="_blank" href="">今天 00:26</a>""" def getTime(html): reg = r'<a class="time".*>(.*)</a>' timere = re.compile(reg) timelist = re.findall(timere,html) for t in timelist: print t getTime(s)

pattern = re.compile(r"(?i)MD5: *(\S+)") 或 pattern = re.compile(r"MD5: *(\S+)", re.I) 然后 pattern.findall(text)

这个是用来匹配不带空格和反斜杠的字符串.这里的^匹配非中括号里的字符;\s代表空格;\\\代表字符反斜杠(正则表达式需要双反斜杠来转义,因为\在正则表达式中本身就具有含义)line = 'haha \\\\ \\ hehe'matches = re.findall('([^\s\\\]+)', line)print matches # ['haha', 'hehe']望采纳!

网站地图

All rights reserved Powered by www.jbmf.net

copyright ©right 2010-2021。
www.jbmf.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com