代码之家  ›  专栏  ›  技术社区  ›  Umair Ayub

如何匹配字符串而不考虑python regex中的新行?[复制品]

  •  -4
  • Umair Ayub  · 技术社区  · 7 年前

    我这里有根绳子

    Some text here
    
    Maybe something here too
    
    Work hard in silence
    
    let your success
    
    
    make noise
    
    rest of the paragraph here with some
    
    new lines too
    

    我的目标是找到并移除 Work hard in silence let your success 以及前面的文字。

    如何告诉regex在目标字符串中查找而不考虑新行?

    最后的结果应该是保留新行的剩余字符串。

    make noise
    
    rest of the paragraph here with some
    
    new lines too
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   wiesion    7 年前

    这是非常基本的regexp,你需要 Work\s+hard\s+in\s+silence\s+let\s+your\s+success\s+make\s+noise

    您当前的regexp正在搜索文本匹配,这意味着每个空格字符都必须是空格字符-它不是任何类型的空白字符。你需要使用 \s ,它匹配任何空白字符(等于 [\r\n\t\f\v ] )量词 + 需要至少一个空格。

    编辑

    我不确定它是否在最初的要求中,但如果您想保持多行模式的活动,并匹配所有内容,直到您搜索的句子结束:

    [\S\s]*Work\s+hard\s+in\s+silence\s+let\s+your\s+success\s*