【问题标题】:Why isn't my whitespace being eliminated? [duplicate]为什么我的空格没有被消除? [复制]
【发布时间】:2019-10-06 08:03:09
【问题描述】:

为什么在这个例子中最初的空白没有被删除?

s = ' Spain'
s = s.replace('\s*', '')
In[1]:s
Out[1]: ' Spain'

我在使用 pandas .str.replace 从系列中删除空格时注意到了这一点,因此我尝试了这个简单的示例,但不明白为什么这不起作用。

【问题讨论】:

  • replace() 接受字符串,而不是正则表达式。见stackoverflow.com/questions/16720541/…
  • 为什么不使用“strip”功能(或rstrip或lstrip)?这要简单得多。
  • @Paul Cornelius 因为在我的情况下,我的字符串中有多个空格,而不仅仅是在左右两端
  • 是的,这是不使用 strip 的一个很好的理由。

标签: python


【解决方案1】:
>>> s = ' Spain'
>>>
>>> # Regex
>>> re.sub('\s*', '', s)
'Spain'
>>>
>>> # str.lstrip
>>> s.lstrip()
'Spain'
>>>

【讨论】:

    【解决方案2】:
    • 如果您只需要删除空格,请使用
    s = s.replace(' ', '')
    

    注意:replace 不适用于正则表达式。

    • 如果您只需要从开头和结尾删除空白字符,请使用
    s = s.strip()
    
    • 如果您需要消除所有空白字符(空格、制表符、换行符),您可以使用
    s = ''.join(s.split())
    

    【讨论】:

      猜你喜欢
      • 2010-10-12
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2014-03-09
      • 2017-03-19
      • 2012-11-16
      相关资源
      最近更新 更多