匹配多行文本块的正则表达式
匹配跨多行的文本可能会给正则表达式构造带来挑战。考虑以下示例文本:
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 中使用此正则表达式,您可以使用以下代码:
<code class="python">import re pattern = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)</code>
然后您可以使用 match() 方法在字符串中查找匹配项:
<code class="python">match = pattern.match(text) if match: text1 = match.group(1) text2 = match.group(2)</code>
以上是如何使用正则表达式捕获多行文本块?的详细内容。更多信息请关注PHP中文网其他相关文章!