I have strings like:
$a = 'helloMister';
$b = 'doggyWaltz';
$c = 'bumWipe';
$d = 'pinkNips';
How can I explode at the capital letters?
I have strings like:
$a = 'helloMister';
$b = 'doggyWaltz';
$c = 'bumWipe';
$d = 'pinkNips';
How can I explode at the capital letters?
If you want to split helloMister
into hello
and Mister
you can use preg_split
to split the string at a point just before the uppercase letter by using positive lookahead assertion:
$pieces = preg_split('/(?=[A-Z])/',$str);
and if you want to split it as hello
and ister
you can do:
$pieces = preg_split('/[A-Z]/',$str);
RecipesActionModel
and we want only array of three elements Receipe,Action,Model
. This solution make array with four elements which element 0 is empty. –
Multiplicand Look up preg_split
$result = preg_replace("([A-Z])", " $0", "helloMister");
print_r(explode(' ', $result));
hacky hack. Just don't have spaces in your input string.
Extending Mathew's Answer, this works perfectly,
$arr = preg_replace("([A-Z])", " $0", $str);
$arr = explode(" ",trim($arr));
Further on the selected answer.
If you are dealing with acronyms in the text, it will change OOP
to O O P
You can then use preg_split('/(?=[A-Z][a-z])/', $text)
to lookahead for the lower case too to capture words fully.
Look at preg_split, it's like explode but takes a regular expression
preg_split('~[A-Z]~',$inputString)
© 2022 - 2024 — McMap. All rights reserved.