【问题标题】:Regex match exact amount of character on multi line string正则表达式匹配多行字符串上的确切字符数量
【发布时间】:2022-11-13 01:03:58
【问题描述】:

我有一个类似下面的文字。

    start
        foo1
        bar1
    stop

        start
            foo2
            bar2
        stop

    start
       oof
       rab
    stop

我需要在开始和停止之间捕获文本,但只能从四个空格开始。所以我想捕捉文本的第一部分和第三部分。你能帮忙吗?

我写了这样的东西。 dotall 处于活动状态(点匹配新行)

\s{4}start.*?\s{4}stop

但它不起作用。它仍然捕获所有块。 ^ 不起作用,因为所有文本都只有一行。

【问题讨论】:

    标签: python regex


    【解决方案1】:

    以这种方式设置正则表达式标志:

    1. 使用单行标志 (re.S) 以便 . 匹配换行符;
    2. 使用re.M 以便^ 锚与多行匹配。

      然后:

      r'^s{4}start.*?^s{4}stop'
      

      作品

      Demo

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2020-08-22
      • 2013-01-13
      • 2019-03-22
      • 1970-01-01
      • 2021-10-29
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多