我想使用Python正則表達式分別從一字符串(如下所示)抓住L1和L2的內容:Python的正則表達式匹配太多字符串的
import re
S = """
L1 = {
{1, 3, 4, 5, 6},
{1, 3, 4, 5, 6},
{1, 3, 4, 5, 6}
};
L2 = {
{1, 3, 4, 5, 6},
{1, 3, 4, 5, 6},
{1, 3, 4, 5, 6}
};
"""
pattern = "L[12] = \{(.*)\}\;"
print re.findall(pattern, S, flags=re.DOTALL)
然而,這種圖案會產生以下匹配:
['\n {1, 3, 4, 5, 6},\n {1, 3, 4, 5, 6},\n {1, 3, 4, 5, 6}\n};\n\nL2 = {\n {1, 3, 4, 5, 6},\n {1, 3, 4, 5, 6},\n {1, 3, 4, 5, 6}\n}']
我本來會期望匹配終止在分號來產生兩個單獨的匹配,但相反,它抓住了一切。
分號不需要轉義(大括號似乎不太)。 –