【问题标题】:Removing all numeric characters in a string, python [duplicate]删除字符串中的所有数字字符,python [重复]
【发布时间】:2017-03-26 01:00:31
【问题描述】:

我希望删除字符串中的每个数字。更具体地说,我希望删除以下代码字符串中的所有数字

Comp_String = "xxf1,aff242342"

怎么能做到这一点。 (显然在代码内部)。我找到了许多关于删除代码中字母而非数字的实际部分的问题的答案。请解释一下你的代码实际上在做什么

【问题讨论】:

  • print ''.join([i for i in Comp_String if not i.isdigit()])

标签: python extract


【解决方案1】:

你可以在这里找到答案 Removing numbers from string

从这个答案:

comp_string = "xxf1,aff242342"
new_string = ''.join([i for i in comp_string if not i.isdigit()])

它使用 .join 从列表中创建一个新字符串。该列表是使用列表推导创建的,该列表推导遍历原始字符串中的字符,并排除所有数字。

【讨论】:

    【解决方案2】:

    这将删除任何不是字母的字符,方法是遍历每个字符并仅在它是字母时将其添加到输出中:

    output_string = ""
    
    for char in Comp_String:
        if char.isalpha():
            output_string = output_string + char
    

    这将通过遍历每个字符并仅在不是数字时将其添加到输出中来删除任何数字字符:

    output_string = ""
    
    for char in Comp_String:
        if not char.isdigit():
            output_string = output_string + char
    

    【讨论】:

      【解决方案3】:

      您可以使用https://docs.python.org/3.6/library/re.html 模块使用正则表达式来实现。您需要的唯一正则表达式是 \d,它表示数字。

      from re import sub
      
      comp_string = "xxf1,aff242342"
      print(sub(pattern=r"\d", repl=r"", string=comp_string))
      

      【讨论】:

        猜你喜欢
        • 2016-03-03
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-16
        • 2020-09-03
        • 2010-11-17
        • 2012-12-16
        相关资源
        最近更新 更多