我有一个具有这种结构的文件:
create "layer01";
attr "False";
create "layer02";
other_stuff;
create "layer03";
attr "False";
我已经有一个['layer01', 'layer02', 'layer03']
的列表,我需要检查其中哪个缩进了attr "False"
(哪个将始终使用此名称)。有没有一种干净/聪明的方法可以做到这一点?
答案 0 :(得分:1)
您可以使用
^
create\s+"([^"]+)";\s+
attr\s+"([^"]+)";
如
import re
data = """
create "layer01";
attr "False";
create "layer02";
other_stuff;
create "layer03";
attr "False";
"""
rx = re.compile(r"""
^
create\s+"([^"]+)";\s+
attr\s+"([^"]+)";
""", re.MULTILINE | re.VERBOSE)
layers = [layer.group(1)
for layer in rx.finditer(data)
if layer.group(2) == "False"]
print(layers)
哪个产量
['layer01', 'layer03']