Python - 用字符串替换逗号

时间:2017-11-14 07:37:45

标签: python regex string replace

我有以下字符串

string =" [11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[ 11801 14001] ,,,, [11801 14001],[11801 14001],[14001],[14001],[14001]"

为了稍后将字符串放入列表中,我想删除字符串中间的4个逗号中的3个。我不想要像 string.replace(" ,,,,",",") 因为在其他情况下连续有7个或更多的逗号,然后这不起作用。你有解决方案吗?感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式搜索两个或多个逗号,并用一个逗号替换它们。

result = re.sub(",,+", ",", string, 0, re.IGNORECASE | re.VERBOSE | re.MULTILINE)
  

,, +

     

选项:不区分大小写;自由空间;点不符合换行符; ^ $匹配换行符;仅限正则表达式语法

     

匹配字符“,”字面意思«,»

     

匹配字符“,”字面意思«,+»

     

在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)«+»

答案 1 :(得分:0)

替代方式,使用splitjoin

>>> ','.join([i for i in string.split(',') if i])
'[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[11801 14001],[14001],[14001],[14001]'