匹配多行文本块的正则表达式
在 Python 中,匹配多行文本可能具有挑战性。本文提供了一个简洁的解决方案来捕获多行块及其关联的行组。
考虑以下文本格式:
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).
目标是捕获两个组:“一些变化的文本” " 行及其后续大写行(无换行符)位于一个捕获组中。
Lösungsansatz
re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
Erläuterung
Beispiel
text = "some Varying TEXT\nDSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]\n(repeat the above)." match = re.match(r"^(.+)\n((?:\n.+)+)", text, re.MULTILINE) print(match.group(1)) # "some Varying Text" print(match.group(2)) # "DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF\n[more of the above]\n[yep, there is a newline]"
此方法利用 Python 的 re 模块及其 MULTILINE 选项来启用多行匹配并避免锚定问题。
以上是如何在Python中使用正则表达式捕获多行文本块?的详细内容。更多信息请关注PHP中文网其他相关文章!