【发布时间】:2020-11-16 15:17:16
【问题描述】:
假设我有以下 Python 字符串
str = """
....
Dummyline
Start of matching
+----------+----------------------------+
+ test + 1234 +
+ test2 + 5678 +
+----------+----------------------------+
Finish above. Do not match this
+----------+----------------------------+
+ dummy1 + 00000000000 +
+ dummy2 + 12345678910 +
+----------+----------------------------+
"""
我想匹配第一个表的所有内容。我可以使用从
开始匹配的正则表达式"Start"
匹配所有内容,直到找到双换行符
\n\n
我在另一个 stackoverflow 帖子 (How to match "anything up until this sequence of characters" in a regular expression?) 中找到了一些关于如何执行此操作的提示,但它似乎不适用于双换行符。
想到下面的代码
pattern = re.compile(r"Start[^\n\n]")
matches = pattern.finditer(str)
基本上在哪里
[^x]
表示匹配所有内容,直到找到字符 x。但这仅适用于字符,不适用于字符串(在这种情况下为“\n\n”)
有人知道吗?
【问题讨论】: