代码
import re
def title_data(title):
lt = []
lt2 = []
str1 = lt.append(re.findall(r'\d+年\d+月\d+日', title))
str2 = lt.append(re.findall(r'(?<=新增本地新冠肺炎确诊病例)\d+', title))
str3 = lt.append(re.findall(r'(?<=新增*输入)\d+', title))
str4 = lt.append(re.findall(r'(?<=治愈出院)\d+', title))
lt = if_no_data(lt)
for i in lt: #转为字符串
lt2.append(i[0])
if lt2[0] == '0':
lt2[0] = '2020年' + re.findall(r'\d+月\d+日', title)[0]
return lt2
def if_no_data(lt): #将搜索不到的数据默认为0
for i in range(len(lt)):
if lt[i] == []:
lt[i] = ['0']
return lt
结果展示
这里正则表达式用到了正向后行断言,(?<=表达式)
,即要求取出字符的前面要有能匹配的表达式。同样的还有正向现行断言(?<=表达式)
,即要求取出字符的后面要有能匹配的表达式。反向先行断言是(?!表达式)
,保证右边不出现某内容。(?<!表达式)
是反向后行断言。