繁体   English   中英

负前瞻正则表达式python

[英]negative lookahead regular expression python

我有一个字符串列表,如果前面没有“ and”,我想匹配一个关键字。 但是,如果“和”后面有另一个单词,我想添加关键字。 考虑到“和”在所有字符串中的位置都不相同。

在下面的示例中,仅当单词“ book”不在“ and”之后时,我才想匹配具有“ book”一词的字符串,除非“ and”前面带有“ tall”(第一和第三项)在我的列表中)。 我的尝试是使用

^((?!((?<!tall)\band\b)).)*book

但它不起作用。 我不确定是否可以在否定前瞻的背后包含否定的眼神

  1. 是一本高大的书

  2. 是一台计算机和一本说明书

  3. 封面精美的书

4.带好耳机的电脑

我将使用正向和负向后面的交替表达这句话:

((?<!\band )|(?<=\btall and ))book

演示

如果满足以下两个条件之一,则此处的逻辑是匹配单词book

  • book是不是在单词and所有
  • book的开头是and ,而后面又是tall

我没有费心去包含任何Python代码,但是根据我在您的问题中所搜集到的内容,这些东西正在弄清楚正则表达式,而不是Python代码。

我发现我的方法并非完全错误。 当我取出第一个边界时,它起作用。

^((?!((?<!tall) and\b)).)*book

我还不知道为什么在包含该边界时为什么它不起作用。 但这有效。 谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM