i’m looking for a way to split a string in several words, based on some delimiters.
For example the string
word1&word2 !word3 word4 &word5 should give me an array with the following words:
word1 &word2 !word3 word4 &word5
How to reach that?
I tried several solution with str_replace() but i cannot figure out the best way to obtain what i need.
Maybe the solution could be using regular expressions, but i do not know how to use them.
$src='word1&word2 !word3 word4 &word5'; $arr=explode(' ',$src=preg_replace('/(?<=[\w])([&!])/',' $1',$src)); echo join('<br>',$arr); // present the result ...
First change any occurence of a group consisting of a single character of class
[&!] that is preceded by a ‘word’-character into
' $1' (=itself, preceded with a blank) and then
explode()the string using the blanks as separators.
If you need to deal with multiple blanks as separators between the words you could of course replace the (faster)
explode(' ',...) with a slighty more “refined”
Answered By – Carsten Massmann
Answer Checked By – Dawn Plyler (BugsFixing Volunteer)