gpt4 book ai didi

python - 如何在负面回顾捕获术语正则表达式之间捕获未知数量的单词?

转载 作者:行者123 更新时间:2023-12-04 12:37:43 25 4
gpt4 key购买 nike

我试图排除在“dog”一词之前某处有“owner”一词的记录

  • 主人有一只狗(不包括)
  • 主人有一只黑色和棕色的狗(不包括)
  • 约翰有一只狗(包括)
  • John 有一只黑色和棕色的狗(包括)

这是当前的正则表达式:

\b(?<!owner\s)\w+\sdog\b

这适用于单个未知词('owner has dog' 被排除,但 'owner has a dog' 被包括在内),但是,我无法捕获多个词,这些词在“owner”和“dog”之间的所有词中保留其负面外观。

非常感谢

最佳答案

您可以使用以下正则表达式来验证字符串是否包含前面没有单词“owner”的单词“dog”。

^(?:(?!\bowner\b).)*\bdog\b

Start your engine! <¯\(ツ)> Python code

Python 的正则表达式引擎执行以下操作。

^                : anchor match to beginning of string
(?: : begin a non-capture group
(?!\bowner\b) : use a negative lookahead to assert that the current
position in the string is not followed by "owner"
. : match a character
) : end non-capture group
* : execute non-capture group 0+ times
\bdog\b : match 'dog' surrounded by word boundaries

匹配不以非法单词开头的一系列单个字符的技术称为 Tempered Greedy Token Solution .

关于python - 如何在负面回顾捕获术语正则表达式之间捕获未知数量的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62723857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com