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

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

"  Example"   -> "Example"
"  Example  " -> "Example  "
"    Example" -> "Example"

当前回答

如果你想去掉单词前后的空白,但保留中间的空白。 你可以用:

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

其他回答

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

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

Edit

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

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

相关问题:

在Python中修饰字符串

功能条将删除字符串开头和结尾的空白。

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

将my_str设置为“text”。

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

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

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

如果你想去掉单词前后的空白,但保留中间的空白。 你可以用:

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
"""

如果我们打印(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