我有一个文本字符串,以一些空格开始,在2和4之间变化。
删除前导空格的最简单方法是什么?(即。删除某个字符之前的所有内容?)
" Example" -> "Example"
" Example " -> "Example "
" Example" -> "Example"
我有一个文本字符串,以一些空格开始,在2和4之间变化。
删除前导空格的最简单方法是什么?(即。删除某个字符之前的所有内容?)
" Example" -> "Example"
" Example " -> "Example "
" Example" -> "Example"
当前回答
要删除某个字符之前的所有内容,请使用正则表达式:
re.sub(r'^[^a]*', '')
删除第一个“a”之前的所有内容。[^a]可以替换为任何你喜欢的字符类,比如字字符。
其他回答
在清理文本时使用正则表达式是最佳实践
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 !'
一般来说,它可以很好地应用于所有字符串处理。
它的作用如下:
首先,它去掉了开头和结尾空格。 然后它会分割——默认情况下它会在空格上执行此操作(因此它甚至会获得制表符和换行符)。它返回一个列表。 最后,join遍历列表,并在每个列表之间使用一个空格进行连接。
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中修饰字符串
这个问题不涉及多行字符串,但下面是如何使用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
如果你想去掉单词前后的空白,但保留中间的空白。 你可以用:
word = ' Hello World '
stripped = word.strip()
print(stripped)