【问题标题】:Python: Keeping whitespace at the beginning of a string [duplicate]Python:在字符串的开头保留空格[重复]
【发布时间】:2017-08-03 13:28:49
【问题描述】:

我有一个如下所示的字符串:

old_string = '      Some_text'

我想写一个新字符串,但我想在开头保留相同的空格。 Python中有没有办法可以保留这个空白? 空白可以包含空格或制表符,但制表符或空格的确切数量是未知的。 我认为这可以使用正则表达式来完成,但我不确定是否有办法。而且由于字符串中的文本并不总是相同的,所以我不能使用

new_string = old_string.replace('Some_text','new_text')

欢迎任何想法。

【问题讨论】:

  • @Rachitkapadia 我不认为它是重复的。 OP 想要一个新字符串,其前导空格与旧字符串完全相同(无论是空格还是制表符)。这与计数不同。

标签: python string


【解决方案1】:

你可以这样做:

new_string = old_string[:-len(old_string.lstrip())] + 'new text'

或者如果你喜欢str.format:

new_string = '{}new text'.format(old_string[:-len(old_string.lstrip())])

【讨论】:

    【解决方案2】:

    计算使用lstrip时删除了多少个字符;

    str = '      Some_text'
    whitespace = len(str) - len(str.lstrip())
    print(whitespace)
    

    输出;

    6
    

    【讨论】:

      【解决方案3】:

      您可以使用itertools.takewhile() 获取前导空白字符:

      >>> from itertools import takewhile
      >>> old_string = '      Some_text'
      >>> whitespace = list(takewhile(str.isspace, old_string))
      >>> "".join(whitespace)
      '      ' 
      >>> len(whitespace) 
      6 
      

      要获取字符串的其余部分,您可以使用itertools.dropwhile()

      >>> "".join(dropwhile(str.isspace, old_string))      
      'Some_text'
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 2021-11-06
      • 2021-03-05
      • 2020-07-23
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      相关资源
      最近更新 更多