【问题标题】:How can I strip unwanted characters from a string in python?如何从python中的字符串中删除不需要的字符?
【发布时间】:2011-08-13 03:35:00
【问题描述】:

我有以下字符串:

text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'

我想回来:

2007 2008

在 Python 中有什么方法可以做到这一点?

【问题讨论】:

  • 如果它是我想保留的特定文本怎么办。它可能是一个数字,但也可能不是。例如,如果我想保留 2007d 2008a 或其他特定的文本字符串怎么办?

标签: python string text


【解决方案1】:

这是正则表达式的经典案例。使用你得到的 re python 库:

re.findall('\d{4}', "yourStringHere")

这将返回在字符串中找到的所有四位数字项的列表。只需根据需要调整您的正则表达式。

【讨论】:

    【解决方案2】:
    import re
    num = re.compile('[\d]*')
    numbers = [number for number in num.findall(text) if number]
    ['2007', '2008']
    

    【讨论】:

      【解决方案3】:
      >>> import re
      >>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
      >>> re.sub("[^0-9]"," ",text)
      '          2007                   2008         '
      

      我会把它留给你来格式化输出。

      【讨论】:

        【解决方案4】:

        str.translate

        text.translate(None, ''.join(chr(n) for n in range(0xFF) if chr(n) not in ' 01234567890')
        

        您可能可以构建一个更好的字符表来跳过并使其更漂亮,但这是一般的想法。

        【讨论】:

          猜你喜欢
          • 2011-02-16
          • 1970-01-01
          • 2011-12-24
          • 2016-02-01
          • 2016-06-29
          • 1970-01-01
          • 2015-07-06
          相关资源
          最近更新 更多