Python RE:在模式a之后找到模式b的所有匹配项

时间:2016-11-16 02:38:45

标签: regex python-3.x

我有一个如下所示的文本文件:

  1. 警告 - [blah1]
  2. 几行
  3. 警告 - [blah2]
  4. 更多行
  5. 总警告:2
  6. 更多行
  7. 警告 - [blah3]
  8. 更多随机行
  9. 警告 - [blah4]
  10. 我的目标是找到“警告总数:2”之后的所有警告匹配。

    到目前为止,我尝试了两种方法:

    1. regex = re.compile('总计 em>警告。(警告 - [\ S +])',重新DOTALL)
    2. regex = re.compile('总计警告。?(警告 - [\ S +])',re.DOTALL)
    3. 第一种方法给了我贪婪的结果,即只匹配blah4而第二种只匹配blah3。我怎样才能让它与两者相匹配?

      我正在使用findall。

2 个答案:

答案 0 :(得分:1)

render() {
    return (
        <div className="well">
            hi from well

            <button className="btn btn-danger"></button>
        </div>
    );
}

答案 1 :(得分:0)

您可以尝试在"Total warnings"上拆分文本文件,然后只处理文件的后半部分:

import re

with open('yourfile.txt') as f:
    halves = f.read().split('Total warnings')

regex = re.compile(r'Warning-\[(\S+)\]')
matches = re.findall(regex, halves[1])