python正则表达式提取某段信息后,如何去掉这些信息中含有的某些信息
比如我要提取有....中这两个字中间的信息。但假如这中间信息含有干燥剂或者发明了。。技术,我就不想要这条信息,不提取这整条信息。该怎么做,有大神会吗...
比如我要提取 有....中这两个字中间的信息。
但假如这中间信息含有 干燥剂 或者 发明了。。技术,我就不想要这条信息,不提取这整条信息。
该怎么做,有大神会吗 展开
但假如这中间信息含有 干燥剂 或者 发明了。。技术,我就不想要这条信息,不提取这整条信息。
该怎么做,有大神会吗 展开
展开全部
筛选两遍,第一遍以非贪婪模式找出所有匹配有...中的字符串,第二遍剔除其中含有非法字符的匹配结果。
test_str = '有干燥剂中有干燥中有发明了XX技术中有发明了XX中'
regex1 = r'有(.+?)中' #匹配所有'有...中'之间的字符
pre_match = re.findall(regex1, test_str) #结果:['干燥剂','干燥','发明了XX技术','发明了XX']
regex2 = r'(?!.*干燥剂)(?!.*发明了.+技术)' #不能含有干燥剂和发明了..技术字样
final_match = [s for s in pre_match if re.match(regex2, s)] #结果:['干燥','发明了XX']
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询