诺安基金大厦,徐筠老公,试卖网
1.split:切割
使用split不会返回被切割的字符
1 import re 2 ret = re.split("\d+","5as46asf46asf46a") 3 print(ret)
结果为:['', 'as', 'asf', 'asf', 'a']
要想返回被切割的数字,需要在正则表达式前后加( )
1 import re 2 ret1 = re.split("(\d+)","5as46asf46asf46a") 3 print(ret1)
结果为:['', '5', 'as', '46', 'asf', '46', 'asf', '46', 'a']
2.分组命名:(?p<这个组的名字>正则表达式)
1 import re 2 s = "<a>wahaha</a>" 3 ret = re.search("<\w+>(?p<abc>\w+)</\w+>",s) 4 print(ret.group())#结果为<a>wahaha</a> 5 print(ret.group("abc"))#结果为wahaha
3.使用findall可以取到分组中的内容,在表达式中加( )可以优先显示分组中的内容
1 import re 2 s = "<a>wahaha</a>" 3 ret = re.findall("<\w+>(\w+)</\w+>",s) 4 print(ret)#结果为["wahaha"]
如果要取消分组优先,使用(?:正则表达式)
1 import re 2 s = "<a>wahaha</a>" 3 ret = re.findall("<\w+>(\w+)</\w+>",s) 4 ret1 = re.findall("<\w+>(?:\w+)</\w+>",s) 5 print(ret)#结果为["wahaha"] 6 print(ret1)#结果为["<a>wahaha</a>"]
在网页html中,如果使用分组,要求使用这个名字的分组和前面的同名分组中的内容匹配的必须一致
前一个标签可以用?p<tab>,后一个标签可以用?p=tab
import re
1 pattern = "<(?p<tab>\w+)>(\w+)</(?p=tab)>" 2 ret = re.search(pattern,s) 3 print(ret.group())#结果为:<a>wahaha</a>
4.
1 import re 2 ret1 = re.findall(r"\d+\.\d+|\d+","1-2*(60+(-40.35/5)-(-4*3))") 3 print(ret1)结果为:['1', '2', '60', '40.35', '5', '4', '3']
如果要过滤掉小数:
1 import re 2 ret2 = re.findall(r"\d+\.\d+|(\d+)","1-2*(60+(-40.35/5)-(-4*3))") 3 print(ret2)结果为:['1', '2', '60', '', '5', '4', '3']
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python 实现将numpy中的nan和inf,nan替换成对应的均值
python爬虫把url链接编码成gbk2312格式过程解析
网友评论