如何为以下情况编写正则表达式?

时间:2019-05-08 10:28:56

标签: python regex

我喜欢为以下情况编写正则表达式

正则表达式:?

示例1

输入:

I got good morning message

输出:

good morning

示例2

输入

good morning message

输出

good morning

示例3

输入:

my friend got thank you message from xyz

输出:

thank you

输出应包含消息,而忽略其他详细信息,例如i gotmessagemy friend got。该消息不仅可以是good morningthank you

2 个答案:

答案 0 :(得分:0)

如果您想获取got和message关键字之间的字符串,或者想要从字符串的开头开始进行匹配(如果没有),则可以使用以下代码:

import re

pattern = re.compile('(?:.*got )?(?(1)got |)(.*) message')
pattern.search('my friend got thank you message from xyz').group(1)

答案 1 :(得分:-2)

如果我理解正确,那么您希望在got和message之间获取消息,或者如果找不到字符串,则从字符串开头获取消息?

在这种情况下,您可以使用:

[^|got ](.*) message

然后,您可以通过执行\ 1来提取捕获组(在程序或语言上可能有所不同)。