【问题标题】:Remove comma from substring in Python从 Python 中的子字符串中删除逗号
【发布时间】:2021-03-21 04:24:43
【问题描述】:

字符串如下:

s = 'AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1,455.85",($56.10),($56.10),-3.71%'

我希望删除此子字符串 "$1,455.85" 中的逗号,但不删除其他逗号。

我试过了,但失败了:

import re
pattern = r'$\d(,)'

re.sub(pattern, '', s)

为什么这不起作用?

【问题讨论】:

    标签: python-3.x substring re string-substitution


    【解决方案1】:
    import re
    pattern = r"(\$\d+),"
    s = 'AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1,455.85",($56.10),($56.10),-3.71%'
    print(s)
    s = re.sub(pattern, r'\1', s)
    print(s)
    

    输出:

    AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1,455.85",($56.10),($56.10),-3.71%
    AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1455.85",($56.10),($56.10),-3.71%
    

    但它不适用于“$1,455,789.85”

    【讨论】:

    • 请解释你的代码是做什么的以及它是怎么做的。如果它不适用于某些输入,那么它不是正确的答案。
    【解决方案2】:

    您需要一个肯定的后向断言,即,如果逗号前面有一个 $(请注意,$ 需要转义为 \$)后跟一个数字(\d),则匹配一个逗号。试试:

    >>> s = 'AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1,455.85",($56.10),($56.10),-3.71%'
    >>> pattern = r'(?<=\$\d),'
    >>> re.sub(pattern, '', s)
    'AUDC,AUDIOCODES COM,+55,27.49,26.47,"$1455.85",($56.10),($56.10),-3.71%'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-24
      • 2012-03-09
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 2010-09-05
      • 2015-10-28
      • 1970-01-01
      相关资源
      最近更新 更多