首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python变量负查找

Python变量负查找
EN

Stack Overflow用户
提问于 2014-08-21 16:26:35
回答 1查看 129关注 0票数 1

我正在努力找出各种术语的出现,而在这些术语之前没有另一组术语。通常,如果我在前面的组中有一个术语,我可以使用负的查找,但是在Python中有一个零宽度的假设,但情况似乎并非如此。我看到的唯一解决方案是运行两个正则表达式,一个用于显示我正在寻找的内容,另一个用于确认前面的组项不存在。必须有一种更优雅和更有效的方法来做到这一点。有人能帮忙吗?

测试句是:

代码语言:javascript
复制
10 day trip excludes flights

确保由于“航班”一词前面有“排除”而不匹配的正则表达式如下:

代码语言:javascript
复制
(?:without|not including|doesn\'?t include|exclud(?:es|ing))\s*(?:flights?(?:\s+tickets)?|airfare|airline tickets?)

但是,我要保证列入某些案文。我可以通过以下几点来证实这一点:

代码语言:javascript
复制
(?:flights?(?:\s+tickets)?|airfare|airline tickets?)

因此,这将匹配“包括机票”和“机票”,而不是“没有机票”。

匹配字符串的一些示例如下:

代码语言:javascript
复制
including flights
includes flights
plus flights
flights are included
including airfare
and airfare

一些不匹配字符串的示例如下:

代码语言:javascript
复制
not including flights
flights are not included
excluding flights
without airfare
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 18:40:26

你可以试试下面的正则表达式,

代码语言:javascript
复制
^(?=.*?(?:flights|airfare))(?:(?!without|not includ(?:ing|ed)|doesn\'?t include|exclud(?:es|ing)).)*$

演示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25431311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档