我正在尝试排除那些在单词"dog"之前出现单词"owner"的记录。
- the owner has a dog (排除)
- the owner has a black and brown dog (排除)
- John has a dog (包含)
- John has a black and brown dog (包含)
以下是当前的正则表达式:
\b(?<!owner\s)\w+\sdog\b
这适用于单个未知单词(例如 'owner has dog' 被排除在外,但是 'owner has a dog' 包括在内),但是我无法捕获保留其负向回顾的跨越 "owner" 和 "dog" 之间所有单词的多个单词。
非常感谢。
owner
确实在dog
之前?(抱歉在评论中提出这个问题,如果您愿意,我可以分叉“fork”原始问题。) - Mark(?<=\bowner\b.*)
。这是一个可变长度的正向先行断言,在Python的标准re
模块中不受支持。但是,在Python的PyPI regex模块中支持它。然而,更简单的方法是只需编写\bowner\b.*\bdog\b
即可。 - Cary Swoveland