I’m trying to preg_split() a string of tags delimited by commas, double quotes, or spaces.
This is the code I have so far. The idea is to make it as easy as possible for the user to input tags without the use of a javascript solution (which I may go to later).
$tagfield = 'Tag Tag2, Tag3 "Tag" "A Tag"';
$tags = preg_split('/[^(.)^a-zA-Z0-9]+/', $tagfield, NULL, PREG_SPLIT_NO_EMPTY);
The output I’m getting is:
array (
0 => 'Tag',
1 => 'Tag2',
2 => 'Tag3',
3 => 'Tag',
4 => 'A',
5 => 'Tag',
)
My desired output would be:
array (
0 => 'Tag',
1 => 'Tag2',
2 => 'Tag3',
3 => 'Tag',
4 => 'A Tag',
)
I’m not quite sure how I should grab a two-word tag.
Why not a preg_match_all?
Edit:
I accept the unelegantless part of the solution, however it does not return the double quotes. Here is the code I mentioned before. Please, paste the more elegant one you find 🙂
Output: