如何删除Python中的前导空白?

我有一个文本字符串,以一些空格开始,在2 &之间变化;4.

删除前导空格的最简单方法是什么?(即。删除某个字符之前的所有内容?)

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"
455647 次浏览

lstrip()方法将删除以以下开头的字符串上的前导空格、换行符和制表符:

>>> '     hello world!'.lstrip()
'hello world!'

编辑

正如balpha在评论中指出的那样,为了从字符串的开头删除只有空格,应该使用lstrip(' '):

>>> '   hello world with 2 spaces and a tab!'.lstrip(' ')
'\thello world with 2 spaces and a tab!'

相关问题:

strip函数将从字符串的开头和结尾删除空白。

my_str = "   text "
my_str = my_str.strip()

my_str设置为"text"

要删除某个字符之前的所有内容,请使用正则表达式:

re.sub(r'^[^a]*', '')

删除第一个“a”之前的所有内容。[^a]可以替换为任何你喜欢的字符类,比如word字符。

如果你想删除单词前后的空白,但保留中间的空白。< br > 你可以使用:

word = '  Hello World  '
stripped = word.strip()
print(stripped)

这个问题不涉及多行字符串,但下面是如何使用Python的标准库textwrap模块从多行字符串中剥离前导空白。如果我们有这样一个字符串:

s = """
line 1 has 4 leading spaces
line 2 has 4 leading spaces
line 3 has 4 leading spaces
"""

如果我们print(s),我们将得到如下输出:

>>> print(s)
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3

如果我们使用textwrap.dedent:

>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3

在清理文本时使用正则表达式是最佳实践

def removing_leading_whitespaces(text):
return re.sub(r"^\s+","",text)


应用上述函数

removing_leading_whitespaces("  Example")
"  Example"   -> "Example"


removing_leading_whitespaces("  Example  ")
"  Example  " -> "Example  "


removing_leading_whitespaces("    Example")
"    Example" -> "Example"

我个人最喜欢的字符串处理是剥离,分裂和连接(按此顺序):

>>> ' '.join("   this is my  badly spaced     string   ! ".strip().split())
'this is my badly spaced string !'

一般来说,它可以很好地应用于所有字符串处理。

它的作用如下:

  1. 首先,它去掉了开头和结尾空格。
  2. 然后它会分割——默认情况下它会在空格上执行此操作(因此它甚至会获得制表符和换行符)。它返回一个列表。
  3. 最后,join遍历列表,并在每个列表之间使用一个空格进行连接。