pattern = r'[ -\\[\\]]'
regex = re.compile(pattern)
name = '123[ shiv'
new_name = regex.sub('_',name)
Run Code Online (Sandbox Code Playgroud)
给出结果(new_name)::
'_____shiv'
Run Code Online (Sandbox Code Playgroud)
代替::
'123__shiv'
Run Code Online (Sandbox Code Playgroud)
..提前付款
您的正则表达式正在创建一个范围从whitespace (ASCII代码 - 32)到opening bracket - [(ASCII代码 - 91),因为它-介于两者之间.该范围包括数字0 to 9 (ASCII代码 - 48到57).
您需要将正则表达式更改为: -
pattern = '[- \\[\\]]'
Run Code Online (Sandbox Code Playgroud)
-一开始就动了.