The Java regex pattern \\s+
is used to match multiple whitespace characters when applying a regex search to your specified value.
The pattern is a modified version of \\s
which is used to match a single whitespace character.
The difference is easy to see with an example. Suppose you have a String
type variable named myStr
as shown below:
String myStr = "A Wonderful World";
System.out.println(myStr.replaceAll("\\s", "?"));
System.out.println(myStr.replaceAll("\\s+", "?"));
The string has three whitespaces between the words, and there are two replaceAll()
method calls using the pattern \\s
and \\s+
.
The output of the println()
method will be as shown below. Note the different amount of ?
marks in the two strings:
A???Wonderful???World
A?Wonderful?World
When you use the \\s
pattern, each whitespace is counted as a separate match.
With the \\s+
pattern, the three whitespaces in the string will be counted as one, so they will be replaced with a single ?
symbol instead of three.
The +
sign in the regex pattern is also known as the greedy quantifier. It allows you to count multiple occurrences of the pattern as a single occurrence.
And that’s how the \\s+
regex pattern works in Java. 😉