当前面带#和任意数量的空格时,需要排除使用正则表达式定位的块.这是一个示例文件
&START A=23 ... more data ...
B=24 &END
# &START A=34 ... more data ...
B=24 &END
&START .... block 3 of data across multiple lines .... &END
&START .... block 4 of data across multiple lines .... &END
Run Code Online (Sandbox Code Playgroud)
以下正则表达式不会像我预期的那样排除注释条目 -
(?!#\s*)&START(.+?)&END
Run Code Online (Sandbox Code Playgroud)
希望遍历条目和文件以进行处理.执行此操作的Python代码(除了通过注释行之外,它的效果很好) -
f=open(filename)
data=f.read()
f.close()
pattern=re.compiler(r'(?!#\s*)&START(.+?)&END, re.DOTALL)
get_entries = pattern.findall
for entry in get_entries(data):
# process the entry
print entry
Run Code Online (Sandbox Code Playgroud)
可能是一个基本的疏忽,因为在正则表达式方面我是绿色的.非常感谢能够提出建议的任何人.
完全忽略这条线.
if line.lstrip().startswith('#'):
continue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2259 次 |
| 最近记录: |