Replace multiple whitespaces with single space in a string


Replace multiple Whitespaces with single space in a String

To replace multiple white spaces with single space, you could you regular expression module function re.sub(), or you can use string split() and join() functions.

In this tutorial, we shall go through each of these approaches and learn how to replace multiple white spaces with a single space character, with example programs.

Approach 1: Using re.sub() function

re.sub() function can be used with the regular expression r'\s+', which matches one or more whitespace characters (including spaces, tabs, and newlines). All the matches found have to be replaced with a single space ' '. This way, any sequence of multiple spaces will be replaced with a single space.

Python Program

import re

# Given string
input_string = 'apple    banana        cherry'

# Replace multiple spaces with single space
output_string = re.sub(r'\s+', ' ', input_string)

print(output_string)

Output

apple banana cherry

Approach 2: Using string split() and join() functions

The following is a quick code snippet to replace multiple spaces with a single space using string split() and string join() functions.

" ".join(input_string.split())

By default, the split() function splits the string with space as delimiter. Once we get all the chunks, we can then join them again with a single space. The resulting string is what we desire, free of multiple adjacent spaces.

In the following example, we will take a string that has multiple white spaces occurring continuously at some places. And then we will use split() and join() functions to replace those multiple spaces with a single space.

Python Program

# Given string
input_string = 'apple    banana        cherry'

# Replace multiple spaces with single space
output_string = " ".join(input_string.split())

print(output_string)

Output

apple banana cherry

Even if there are any leading or trailing spaces in the string, they would be trimmed out while splitting the string.

Let take an input string that has multiple white spaces including the white space characters like new line, new tab, etc.

Python Program

# Given string
input_string = 'apple \t\t\n   banana    \t \n    cherry'

# Replace multiple spaces with single space
output_string = " ".join(input_string.split())

print(output_string)

Output

apple banana cherry

All the adjacent white space characters, including characters like new line, new tab, etc., are replaced with a single space. The same demonstration should hold for other white space characters like line feed, thin space, etc.

Summary

In this tutorial of Python Examples, we learned how to replace multiple spaces with a single space, using re.sub() function, or string split() and string join() functions.