python正则表达式提取某段信息后,如何去掉这些信息中含有的某些信息

比如我要提取有....中这两个字中间的信息。但假如这中间信息含有干燥剂或者发明了。。技术,我就不想要这条信息,不提取这整条信息。该怎么做,有大神会吗... 比如我要提取 有....中这两个字中间的信息。
但假如这中间信息含有 干燥剂 或者 发明了。。技术,我就不想要这条信息,不提取这整条信息。
该怎么做,有大神会吗
展开
 我来答
帐号已注销
2018-08-03 · TA获得超过3214个赞
知道大有可为答主
回答量:2602
采纳率:71%
帮助的人:1274万
展开全部
这个压根用不上正则表达式。
比如你要提取“有......中”中间的信息,直接用字符串截取不就行了,因为你的是没有规则的字符串。
假如这中间信息含有 干燥剂 或者 发明了。。技术 ---这个可以通过查找字符串,去做判断,判断之后再决定是否要提取这整条信息。
追问
不用正则表达式,用什么代码来进行字符串截取呢
又不知道需要文字的位子,拿什么截取
GTA小鸡
高粉答主

2018-08-03 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

筛选两遍,第一遍以非贪婪模式找出所有匹配有...中的字符串,第二遍剔除其中含有非法字符的匹配结果。

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']
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式