2016-12-05 208 views
3

因此,作为我的应用程序的一部分,我需要它从文本文件中读取数据,并在大括号之间获取元素。PYTHON - 捕获大括号内的内容

e.g:

的Server_1 {

/directory1中/ directory2

}

的Server_2 {

/directory1中

/directory2

}

事遂所愿,如果Server == Server_1,打印目录。

亲切的问候,

迈克尔

回答

4

你可以用这个尝试:

\{(.*?)\} 

Explanation

  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 the code here