负前瞻正则表达式python

负前瞻正则表达式python,python,regex,regex-negation,Python,Regex,Regex Negation,我有一个字符串列表,如果前面没有“and”,我想匹配一个关键字。但是,如果“and”前面有另一个单词,我想包括关键字。考虑到“and”在所有字符串中的位置不同 在下面的示例中,我希望匹配具有单词“book”的字符串,前提是单词“book”不在“and”之后,除非“and”前面有一个“toll”(我列表中的第一项和第三项)。我的尝试是使用 ^((?!((?<!tall)\band\b)).)*book ^((?!(?)? 但它不起作用。我不确定是否可以将负面展望包含在负面展望中 这是一本又

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

在下面的示例中,我希望匹配具有单词“book”的字符串,前提是单词“book”不在“and”之后,除非“and”前面有一个“toll”(我列表中的第一项和第三项)。我的尝试是使用

^((?!((?<!tall)\band\b)).)*book
^((?!(?)?
但它不起作用。我不确定是否可以将负面展望包含在负面展望中

  • 这是一本又高又宽的书

  • 是一台电脑和一本说明书

  • 封面漂亮的书


  • 4.带漂亮耳机的电脑

    我会交替使用正面和负面的后视:

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

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

    • book
      前面根本没有单词
    • book
      前面是
      ,而
      前面又是
      toll

    我没有费心包括任何Python代码,但从我在你的问题中收集的信息来看,真正重要的是找出正则表达式,而不是Python代码。

    我发现我的方法并不是完全错误的。当我去掉第一个边界时,它就起作用了

    ^((?!((?<!tall) and\b)).)*book
    
    ^((?!(?)?
    
    我还不知道为什么当我把这个边界包括进去的时候它不起作用。但是它起作用了。谢谢你

    谢谢你,我唯一不方便的是我不知道“and”的确切位置,如果它在“book”之前,我想你的答案会起作用。但是,在我真正的列表中,“and”的位置当你需要重新表述你的问题时,或者你给出的正则表达式逻辑对你的实际问题不准确。谢谢,你完全正确,我只是重新表述一下