Python 3.x 如何删除除括号和连字符(-)以外的所有特殊字符

Python 3.x 如何删除除括号和连字符(-)以外的所有特殊字符,python-3.x,Python 3.x,我正在尝试从字符串中删除除大括号[]()和连字符-之外的所有特殊字符。我有这个字符串tr=“这(车辆)有四个[变体]:v1、v2、v3”。我正在尝试获取此(车辆)有四个[变型]v1 v2 v3 现在当我做re.sub('[^[)A-Za-z0-9-]+','',tr),我得到“这辆车)有四个[变型v1 v2 v3',所以我做了re.sub('[^[)(]A-Za-z0-9-]+','',tr但是我得到“这辆车有四个[变型]:v1,v2 v3' 同样re.sub('[^[)A-Za-z0-9-(]

我正在尝试从字符串中删除除大括号
[]()
和连字符
-
之外的所有特殊字符。我有这个字符串
tr=“这(车辆)有四个[变体]:v1、v2、v3”
。我正在尝试获取
此(车辆)有四个[变型]v1 v2 v3

现在当我做
re.sub('[^[)A-Za-z0-9-]+','',tr)
,我得到
“这辆车)有四个[变型v1 v2 v3'
,所以我做了
re.sub('[^[)(]A-Za-z0-9-]+','',tr但是我得到
“这辆车有四个[变型]:v1,v2 v3'


同样
re.sub('[^[)A-Za-z0-9-(]+,'',tr)
正在返回
'此(车辆)有四个[variants v1 v2 v3'
,但只要我关闭
]
,它就不会替换任何东西。有没有办法实现此替换?

这是产生所需输出的解决方案! 我


这似乎删除了v1、v2和v3之间的空间(输出为
此(车辆)有四个[变型]v1v2v3
)。相反,将此更改为
re.sub(“[^A-Za-z0-9()\[\]+',”,mystring)
,这将给出输出
此(车辆)有四个[变型]v1 v2 v3
mport re
mystring = "this (vehicle) has four [variants] : v1, v2, v3"
print(re.sub('[^A-Za-z0-9 ()\[\]]+', ' ', mystring))