我有一个python脚本,逐行处理文件,如果行匹配正则表达式,它调用一个函数来处理它.
我的问题是有更好的写入重构我的脚本.该脚本有效,但实际上,我需要在编辑器右侧保持缩进,因为我为我的文件添加了越来越多的正则表达式.
谢谢你的任何想法.现在我的代码最终会像这样:
for line in fi.readlines():
result= reg1.match(line)
if result:
handleReg1(result)
else:
result = reg2.match(line)
if result:
handleReg2(result)
else:
result = reg3.match(line)
if result:
handleReg3(result)
else:
result = reg4.match(line)
if result:
handleReg4(result)
else:
result = reg5.match(line)
if result:
handleReg5(result)
sam*_*gar 12
我将切换到使用映射正则表达式到函数的数据结构.就像是:
map = { reg1: handleReg1, reg2: handleReg2, etc }
Run Code Online (Sandbox Code Playgroud)
然后你只需循环它们:
for reg, handler in map.items():
result = reg.match(line)
if result:
handler(result)
break
Run Code Online (Sandbox Code Playgroud)
如果您需要按特定顺序进行匹配,则需要使用列表而不是字典,但主体是相同的.
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |