簡體   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