从 Python 中的字符串中删除多个空格

在 Python 中从字符串中删除多个空格

Remove multiple spaces from a string in Python

要从字符串中删除多个空格:

  1. 使用该str.split()方法在每个空白字符上拆分字符串。
  2. 使用该str.join()方法用空格连接字符串列表。
  3. 新字符串不会包含多个相邻的空格。
主程序
import re my_str = 'one two three four' # ✅ replace multiple whitespace characters with single space result = " ".join(my_str.split()) print(result) # 👉️ 'one two three four' print(repr(result)) # 👉️ 'one two three four' # --------------------------------------- # ✅ replace multiple spaces with single space result_2 = re.sub(' +', ' ', my_str) print(result_2) # 👉️ 'one two three four' print(repr(result_2)) # 👉️ 'one two three four'

第一个示例使用str.split()andstr.join()方法从字符串中删除多个空格。

str.split ()
方法使用定界符将字符串拆分为子字符串列表。

当在str.split()没有分隔符的情况下调用该方法时,它将连续的空白字符视为单个分隔符。
主程序
my_str = 'one two three four' # 👇️ ['one', 'two', 'three', 'four'] print(my_str.split())

当不带参数调用时,该str.split()方法将拆分为连续的空白字符(例如\t,\n等),而不仅仅是空格。

下一步是使用该str.join()方法连接带有空格分隔符的字符串列表。

主程序
my_str = 'one two three four' # 👇️ ['one', 'two', 'three', 'four'] print(my_str.split()) result = " ".join(my_str.split()) print(result) # 👉️ 'one two three four' # 👇️ 'one two three four' print(' '.join(['one', 'two', 'three', 'four']))

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

另一种方法是使用re.sub()方法。

使用该re.sub()方法从字符串中删除多个空格,例如
result = re.sub(' +', ' ', my_str). re.sub方法将返回一个新字符串,该字符串是通过将所有出现的多个空格替换为一个空格而获得的。

主程序
import re my_str = 'one two three four' result = re.sub(' +', ' ', my_str) print(result) # 👉️ 'one two three four' print(repr(result)) # 👉️ 'one two three four'

re.sub方法返回一个新字符串,该字符串是通过用提供的替换替换模式的出现而获得的。

如果未找到模式,则按原样返回字符串。

我们传递给该re.sub方法的第一个参数是一个正则表达式。

在我们的正则表达式中,我们有一个空格和一个加号+

加号+用于匹配前面的字符(空格)1 次或多次。

总体而言,该示例将 1 个或多个连续空格替换为单个空格。

请注意,该re.sub()方法返回一个新字符串,它不会改变原始字符串,因为字符串在 Python 中是不可变的。

发表评论