我有一个看起来像这样的字符串:
old_string = ' Some_text'
我想写一个新的字符串,但我想在开头保持相同的空格。 Python中是否有一种方法可以保留这个空白区域? 空白区域可能包含空格或制表符,但制表符或空格的确切数量未知。 我认为这可以使用正则表达式来完成,但我不确定是否有办法。由于字符串中的文字并不总是相同,我无法使用
new_string = old_string.replace('Some_text','new_text')
任何想法都会受到欢迎。
答案 0 :(得分:0)
计算使用lstrip
;
str = ' Some_text'
whitespace = len(str) - len(str.lstrip())
print(whitespace)
输出;
6
答案 1 :(得分:0)
你可以这样做:
new_string = old_string[:-len(old_string.lstrip())] + 'new text'
或者如果您更喜欢str.format
:
new_string = '{}new text'.format(old_string[:-len(old_string.lstrip())])
答案 2 :(得分:0)
您可以使用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'