import re
s = 'r<li title=" 天玑1100">CPU型号: 天玑1100</li>'
a = '<li title="2021011606369214">证书编号:2021011606369214</li>'
v = re.findall(r'<li title=".+">(.+)</li>',s)
print(v)
我使写的这个办法,两个全部都可以匹配出来,能不能实现精准定位,就匹配其中一个,另外的无法匹配。
['CPU型号:\xa0天玑1100']
最后匹配一个标签的时候还出现了这个问题,怎么能将\xa0给去掉
你这样改:
v = re.findall(r'<li title=".+">CPU型号:(.+)</li>', s)
下面代码可分开提取,用\s+匹配去掉\xa0。
import re
s = 'r<li title=" 天玑1100">CPU型号: 天玑1100</li>'
a = '<li title="2021011606369214">证书编号:2021011606369214</li>'
v = re.findall(r'<li title=".+">.*:\s+(.+)</li>', s)
print(v)
v1 = re.findall(r'<li title=".+">(.*):', s)
print(v1)
如有帮助,请采纳。
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
import re
s = 'r<li title=" 天玑1100">CPU型号: 天玑1100</li>'
a = '<li title="2021011606369214">证书编号:2021011606369214</li>'
req = r'<li title="[^<>"]+">(CPU型号.+?)</li>'
s = re.sub(r'\xa0',' ',s) #把\xa0先替换成空格
v1 = re.findall(req,s) #可以匹配
v2 = re.findall(req,a) #无法匹配,返回空列表[]
print(v1)
print(v2)
按照你的代码,我运行结果满足你的要求
import re
s = 'r<li title=" 天玑1100">CPU型号: 天玑1100</li>' \
'<li title="2021011606369214">证书编号:2021011606369214</li>'
a = '<li title="2021011606369214">证书编号:2021011606369214</li>'
v = re.findall(r'<li title=".*?">CPU型号: (.*?)</li>', s)
print(v)
有帮助的话采纳下