当前位置: 首页 > 知识库问答 >
问题:

如何在python中删除双引号中的逗号?

龚联
2023-03-14

我想从字符串中删除双引号中的逗号/逗号。

即以下字符串

string = '100,"def,ghi","jkl,mno\"pqr,stu","stu,vwx"'

应输出:

'100,"defghi","jklmno"pqrstu","stuvwx"'

我试过这个正则表达式:

re.sub(',(?=[^"]*"[^"]*(?:"[^"]*"[^"]*)*$)', "", string) 

但是如果双引号中有双引号,它就失败了。

另一个例子:

string = 'null,"re,\"move,\"comma"'

输出:

'null,"re"move"comma"'

共有1个答案

况喜
2023-03-14

您可以拆分非转义引号上的字符串,并删除每个奇数索引子字符串上的逗号。然后使用引号将子字符串重新连接在一起作为分隔符:

例如:

'100,“def,ghi”,“jkl,mno \”pqr,stu,“stu,vwx”将分为:

...

import re

def remComma(S):
    return '"'.join(s.replace(",","") if i%2 else s
                    for i,s in enumerate(re.split(r'(?<!\\)"',string)))

输出:

string = r'100,"def,ghi","jkl,mno\"pqr,stu","stu,vwx"'
print(remComma(string).replace(r'\"','"'))
# 100,"defghi","jklmno"pqrstu","stuvwx"

string = r'null,"re,\"move,\"comma"'
print(remComma(string).replace(r'\"','"'))
# null,"re"move"comma"

请注意,您还“取消”了输出中的引号,这是我在print语句中单独做的,因为它本身与逗号删除过程无关。

 类似资料:
  • 问题内容: 我想删除我的json_encode中的双引号,即我的代码: 我的结果是: 我也想删除“ id_posiciones”和“ device_version”的双引号。 我该怎么做的结果是: 问题答案: 如果最后在您的正则表达式中添加下划线,它将执行此操作。 我认为那正是preg_replace的目的。

  • 问题内容: 使用Python v2,我让用户在字符串中输入金额,如下所示: 这将去除输入前面的所有空格,如果输入了$,则删除$。 如果输入逗号符号,是否可以删除逗号符号?IE:$ 10,000.00变为10000.00 谢谢你的帮助。 问题答案: 您可以使用删除所有逗号:

  • 输出为 预期输出

  • 我有一个字符串: "16680,16678,16677,16676,16675,16672" 这是我在调用存储过程传递的参数时得到的。我想把这些记录插在哪里 其中 (16680,16678,16677,16676,16675,16672)。 如何在 Sybase ASE 存储过程中执行此操作?

  • 我想拆分一个字符串基于逗号不包括一个在双引号,也如果有任何相邻的逗号,他们应该被视为单独的令牌 我可以使用正则表达式([^\“]*)\” 但如果有相邻的逗号,它就无法正确地标记。字符串示例 输出应该是 请帮忙

  • 问题内容: Python中的单引号与双引号 问题答案: 我喜欢在用于插值或自然语言消息的字符串周围使用双引号,对于像符号一样小的字符串使用单引号,但是如果字符串包含引号或者我忘记了,则会违反规则。我对文档字符串使用三重双引号,对正则表达式使用原始字符串文字,即使不需要它们也是如此。 例如: