PYTHON - 捕捉花括号内的内容

mtj*_*son 7 python regex string parsing text

因此,作为我的应用程序的一部分,我需要它从文本文件中读取数据,并获得大括号之间的元素.

例如:

Server_1 {

/ directory1/directory2

}

Server_2 {

/ directory1中

/ directory2

}

然后,如果Server == Server_1,打印目录.

亲切的问候,

迈克尔

Riz*_*man 13

你可以尝试这个:

\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)

说明

  1. \{ matches the character { literally (case sensitive)
  2. (.*?) 1st Capturing Group
  3. .*? 匹配任何角色
  4. *? 量词 - 在零和无限时间之间匹配,尽可能少,根据需要扩展(懒惰)
  5. \}}字面匹配字符(区分大小写)

用于提取大括号内的内容的示例代码:

 import re

regex = r"\{(.*?)\}"

test_str = ("Server_1 {\n"
    "/directory1 /directory2\n\n"
    "}\n"
    "Server_2 {\n\n"
    "/directory1\n\n"
    "/directory2\n\n"
    "}")

matches = re.finditer(regex, test_str, re.MULTILINE | re.DOTALL)

for matchNum, match in enumerate(matches):
    for groupNum in range(0, len(match.groups())):
        print (match.group(1))
Run Code Online (Sandbox Code Playgroud)

在这里运行代码