下面的代码将匹配的symblsDict
字典键替换为变量line
中的值。你知道吗
keys1 = ('|'.join(symblsDict.keys()))
robj1 = re.compile(keys1)
result = robj1.sub(lambda m: symblsDict[m.group(0)], line)
在这个上下文中,Lambda函数用于声明变量m
,它保存匹配模式结果。我不明白变量m
如何具有匹配模式结果,因为我们没有给m
赋值,只是在函数中声明?你知道吗
Content of Dictionary:{'FTP': 'FTP,COND=(0,LE)', 'TOTAL.LIB6': 'TOTAL.TEST.LIB', 'TOTAL.CTRX': 'TOTAL.TEST.CTRX', 'DD1': 'ZZ.VVMSSB', 'JHSOUT': '*', 'SOUT': '*', 'SALEDB': 'TEST12', 'EMAIL': 'EMAIL,COND=(0,LE)'
Content of keys1: FTP|TOTAL.LIB6|TOTAL.CTRX|DD1|JHSOUT|SOUT|SALEDB|EMAIL
Content of line: // SOUT=A,
Output:// *=A,
lambda函数被传递给已编译regex模式的
sub
方法。每当模式匹配某个文本时,该方法都会使用“match”对象调用函数。你知道吗调用函数时,参数名
m
会绑定到匹配对象。lambda
中冒号后面的表达式可以使用参数m
来计算返回值,返回值sub
将替换为字符串。你知道吗相关问题 更多 >
编程相关推荐