我希望将我的前导空格替换为每个空格一个
因此,例如:
nbsp;
。因此,例如:
spam --> spam
eggs --> eggs
spam eggs --> spam eggs
我看过一些使用正则表达式的解决方案,但它们都是其他语言编写的。 我尝试在Python中使用以下代码,但没有成功。
import re
raw_line = ' spam eggs'
line = re.subn('\s+', ' ', raw_line, len(raw_line))
print(line) # outputs spam eggs
line = re.sub('\s+', ' ', raw_line)
print(line) # outputs spam eggs
line = re.sub('^\s', ' ', raw_line)
print(line) # outputs spam eggs
line = re.sub('^\s+', ' ', raw_line)
print(line) # outputs spam eggs
最后一行似乎是最接近的,但仍未成功。
在Python中,用什么正确的方法来将每个前导空格替换为
?
如果有一种不需要使用正则表达式的简洁方法,我会很高兴接受,但我自己无法找到。
regex
PyPi 库,只需一行代码regex.sub(r'\G\s', ' ', s)
即可完成替换。而使用re
则需要使用re.sub(r'^ +', lambda x: x.group().replace(' ', ' '), s)
进行替换。 - Wiktor Stribiżew