Python字符串替换中的特殊字符

时间:2018-03-13 20:54:32

标签: python

我在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)

我该怎么做才能得到正确的字符串?

1 个答案:

答案 0 :(得分:2)

('_**', '=')放在('*_', '(')之前,因为更多字符匹配应该是更高的偏好。

reps = (('_**', '='), ('_&', ' '), ('*_', '('), ('_*', ')'), ('#_', '{'), ('_#', '}'), ('_##', ';'), ('_$', '.'),
        ('_$$', ','))

输出

'AN(Gen=Air Outlet.Temp'