I need to remove all whitespace from string, but quotations should stay as they were.
Here's an example:
string to parse:
hola hola "pepsi cola" yay
output:
holahola"pepsi cola"yay
Any idea? I'm sure this can be done with regex, but any solution is okay.
Martti, resurrecting this question because it had a simple solution that lets you do the replace in one go—no need for implode. (Found your question while doing some research for a general question about how to exclude patterns in regex.)
Here's our simple regex:
The left side of the alternation matches complete
"quoted strings"
then deliberately fails. The right side matches whitespace characters, and we know they are the right whitespace characters because they were not matched by the expression on the left.This code shows how to use the regex (see the results at the bottom of the online demo):
Reference
How to match (or replace) a pattern except in situations s1, s2, s3...
We could match strings or quotations with
So we just need to
preg_match_all
and concatenate the result.Example: