C# Regex.Replace, Merge Multiple SpacesRemove multiple spaces in strings with Regex.Replace. Handle other whitespace like newlines.
Regex.Replace can act upon spaces. It can merge multiple spaces in a string to one space. We use a pattern to change multiple spaces to single spaces. The characters \s+ come in handy.Regex.Replace
includes the System.Text.RegularExpressions namespace, which gives us easy access to Regex.Replace. In CollapseSpaces, we use the pattern "\s+" to indicate more than one whitespace.
And: This will match newlines, carriage returns, spaces and tabs. We then replace this pattern with a single space.
Result: You can see that the output values only have one space in between the words.
Note: Sometimes, after processing text with other regular expressions and methods, multiple spaces will appear.
Tip: CollapseSpaces() can solve that problem but results in even more complexity in the program.
C# program that uses Regex.Replace on spaces
static string CollapseSpaces(string value)
return Regex.Replace(value, @"\s+", " ");
static void Main()
string value = "Dot Net Perls";
value = "Dot Net\r\nPerls";
Dot Net Perls
Dot Net Perls
If this method is in a hot path in your program, it would be better to replace it with a character-based implementation. It is possible to use a character array and then selectively write in characters, omitting unwanted ones.Char Array
Then: You can use the string constructor to convert the character array back to a string.String Constructor
We saw a whitespace-processing method that uses the Regex.Replace method. I have used this method to process strings that were slightly invalid. It works well but increases the overall complexity of the software.Regex
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to email@example.com.