我是一个完全的菜鸟,想用 Python 写一个正则表达式,可以匹配线包含“水果”,但只使用单词“orange”。“水果”和“orange”之间有未知数量的行。
这是我目前得到的信息:
((^.\b(水果)\b。$(\n|\r|\r\n)))橙色
my colors
i am red
i am blue
i am green
my fruits
abc
def
i am a apple
i am a orange
i am a banana
my vehicle
i am a sedan
i am a van
i am a motorbike
应该匹配
my fruits
任何帮助深表感谢!
答案1
也许您可以使用组。请参阅此示例(快速而粗糙,在没有匹配的情况下没有错误处理...)
import re
text="""
my colors
i am red
i am blue
i am green
my fruits
abc
def
i am a apple
i am a orange
i am a banana
my vehicle
i am a sedan
i am a van
i am a motorbike
"""
res=re.search(r'\n*(my [a-zA-Z]*)\n([a-zA-Z ]+\n)*.*orange.*',text)
print(res.group(1))
这将返回“my fruit”。请注意,这仅适用于特定示例,因为您没有准确指定输入模式的格式。