匹配多行文本块的正则表达式
匹配跨多行的文本可能会给正则表达式构造带来挑战。考虑以下示例文本:
some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, there is a variable number of lines here] (repeat the above a few hundred times)
目标是捕获两个组成部分:“some Varying TEXT”部分和所有后续大写文本行,不包括空行。
不正确的方法:
解决此问题的一些不正确的方法包括:
解决方案:
下面的正则表达式正确捕获了所需的组件:
^(. )\n((?:\n. ) )
这是其组件的详细信息:
用法:
要在Python中使用这个正则表达式,可以使用下面的代码:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
然后您可以使用 match() 方法在字符串中查找匹配项:
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3