Python 当很少出现时,如何搜索第一个正则表达式?

Python 当很少出现时,如何搜索第一个正则表达式?,python,regex,Python,Regex,在此之前,我不想提取第一个“Ananas”和第一个点之间的文本。当我在句子中只有一个“Ananas”而不是两个时,代码就起作用了 用以下句子举例: “你好。我讨厌苹果。我喜欢安娜。但是安娜太贵了。” 而正则表达式: *[.].*(.*Ananas) 如果句子只是“你好,我讨厌苹果,我爱阿纳纳斯”,我会摘录“我爱阿纳纳斯” 但是用“你好,我讨厌苹果,我喜欢Ananas,但是Ananas太贵了”这句话,我提取了第二个出现的词“但是Ananas”(?^..*..*?[。]([^.]*?Ananas)?

在此之前,我不想提取第一个“Ananas”和第一个点之间的文本。当我在句子中只有一个“Ananas”而不是两个时,代码就起作用了

用以下句子举例: “你好。我讨厌苹果。我喜欢安娜。但是安娜太贵了。” 而正则表达式:
*[.].*(.*Ananas)

如果句子只是“你好,我讨厌苹果,我爱阿纳纳斯”,我会摘录“我爱阿纳纳斯”
但是用“你好,我讨厌苹果,我喜欢Ananas,但是Ananas太贵了”这句话,我提取了第二个出现的词“但是Ananas”

(?
^..*..*?[。]([^.]*?Ananas)
?是的,但您不必在字符类中转义圆点。我将转义字符作为习惯的力量保留下来-它使我更容易阅读,但我没有您的正则表达式经验。您建议删除它吗?最佳做法是只转义必须转义的内容,以避免反弹地狱和类似于您的问题在JS regexps中使用带有
u
修饰符的模式时有。是的,因为未来的读者可能会认为,即使在字符类中,他们也必须转义这个字符。