代码之家  ›  专栏  ›  技术社区  ›  Igor Dragushhak

如何获得忽略新行符号的子字符串列表

  •  1
  • Igor Dragushhak  · 技术社区  · 7 年前

    Title
    <bp n=3 /> bla bla bla
    bla bla bla <bp n=4 /> bla bla bla
    <bp n=5 /> bla bla bla
    <bp n=6 /> bla bla bla <bp n=7 /> bla bla bla
    bla bla bla
    

    我需要一份这样的清单:

    ['<bp n=3 /> bla bla bla
    bla bla bla','<bp n=4 /> bla bla bla','<bp n=5 /> bla bla bla','<bp n=6 /> bla bla bla ','<bp n=7 /> bla bla bla
    bla bla bla']
    

    我试过使用这样的代码:

    re.findall(r'(<bp n=\d+ />.*?)<bp n=\d+ />',text,re.DOTALL)
    

    然后它跳过了下一场比赛

    1 回复  |  直到 7 年前
        1
  •  0
  •   Wiktor Stribiżew    7 年前

    这个 <bp n=\d+ /> 在模式的末尾匹配后续匹配的一部分。你可以用

    re.findall(r'<bp n=\d+ />.*?(?=<bp n=\d+ />|\Z)', text, re.DOTALL)
    

    看到了吗 regex demo

    在这里, (?=<bp n=\d+ />|\Z) 匹配a 位置 <bp n= /> ,或字符串结尾( \Z ).