Regex Matches white space but not tab (php)

Viewed 5071

How to write a regex with matches whitespace but no tabs and new line? thanks everything

[[:blank:]]{2,} <-- Even though this isn't good for me because its whitespace or tab but not newlines.

2 Answers

As per my original comment, you can use this.

Code

See regex in use here

Note: The link contains whitespace characters: tab, newline, and space. Only space is matched.

[^\S\t\n\r]

So your regex would be [^\S\t\n\r]{2,}


Explanation

  • [^\S\t\n\r] Match any character not present in the set.
    • \S Matches any non-whitespace character. Since it's a double negative it will actually match any whitespace character. Adding \t, \n, and \r to the negated set ensures we exclude those specific characters as well. Basically, this regex is saying:
      • Match any whitespace character except \t\n\r

This principle in regex is often used with word characters \w to negate the underscore _ character: [^\W_]

[ ]{2,} works normally (not sure about php) or even / {2,}/

Related