【问题标题】:Regex - match only the second finding [duplicate]正则表达式 - 仅匹配第二个发现[重复]
【发布时间】:2019-03-13 08:11:57
【问题描述】:

我正在尝试制作一个从第二个“ITEM1”到第一个“ITEM2”的正则表达式代码。 示例:

ITEM1. text i don't want to find.
ITEM1.  text I want to find

ITEM2.  outside text

ITEM2 outside tex

到目前为止,我想出了以下代码:

(ITEM1)[\s\S]*?(ITEM2)

这会选择从第一个 ITEM1 到第一个 ITEM2 的所有内容。我需要代码在第二个 ITEM1 和第一个 ITEM2 之间进行选择。 如果您有任何建议,请告诉我。提前谢谢你!

【问题讨论】:

    标签: python regex text


    【解决方案1】:

    你可以使用

    (?s)ITEM1(?:(?!ITEM1).)+?(?=ITEM2)
    

    ITEM1 开始,懒惰地重复不包含短语ITEM1 的字符(以确保只有ITEM1second 实例被匹配),并提前查找@987654325 @。

    match = re.search(r'(?s)ITEM1(?:(?!ITEM1).)+?(?=ITEM2)', str)
    

    【讨论】:

      猜你喜欢
      • 2019-12-13
      • 2019-07-19
      • 1970-01-01
      • 2011-07-14
      • 2018-06-28
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多