带有可选开头和结尾的Python正则表达式

时间:2020-01-16 20:48:01

标签: regex python-3.x

我正在尝试从每个示例中可能存在或不存在的两个表达式之间提取一个字符串,即:

  • 一份礼物,来自: 10B公寓的朱利叶斯·格雷戈维奇发给:布鲁斯 福克
  • 莱昂·克罗斯和玛丽·威廉姆斯致:肯尼斯·安德鲁斯
  • 来自:玛丽·威廉姆斯

在所有这些中,我想提取“ from:”和“ to:”之间的内容,所以:

  • 10B公寓的朱利叶斯·格雷戈维奇
  • 利昂·克罗斯和玛丽·威廉姆斯
  • 玛丽·威廉姆斯

我无法解决缺少关键字的问题。到目前为止,我尝试过的表达式有两种选择:

(?:from:)(.*?)(?=from:)|(.*?)(?=>to:)

但是我不能在两个关键字都同时出现的情况下工作

1 个答案:

答案 0 :(得分:2)

这是我要怎么做:

(?:.*from: )?(.+?)(?: to:.*|$)

演示:https://regex101.com/r/7Tj9Lx/1

您所需的返回值将在第一个也是唯一的捕获组中。

相关问题