我在python
中有一个字符串我想替换该字符串中的任何特殊字符。
我在下面做了
col_name = 'AN*_Gen_**Air_&Outlet_$Temp'
reps = (('_&', ' '), ('*_', '('), ('_*', ')'), ('#_', '{'), ('_#', '}'), ('_##', ';'), ('_$', '.'),
('_$$', ','), ('_**', '='))
original_cols = reduce(lambda a, kv: a.replace(*kv), reps, col_name)
输出:
'AN(Gen)*Air Outlet.Temp'
预期产出:
'AN(Gen=Air Outlet.Temp'
在此我看到字符串_**
首先被)*
替换为=
而_*
中的reps
为)
我该怎么做才能得到正确的字符串?
答案 0 :(得分:2)
将('_**', '=')
放在('*_', '(')
之前,因为更多字符匹配应该是更高的偏好。
reps = (('_**', '='), ('_&', ' '), ('*_', '('), ('_*', ')'), ('#_', '{'), ('_#', '}'), ('_##', ';'), ('_$', '.'),
('_$$', ','))
输出
'AN(Gen=Air Outlet.Temp'