我有类似这样的字符串:
$a = 'helloMister';
$b = 'doggyWaltz';
$c = 'bumWipe';
$d = 'pinkNips';
我如何将字符串按大写字母拆分?我已在Google上搜索了一段时间,但没有找到任何有用的信息!
如果你想将helloMister
拆分成hello
和Mister
,可以使用preg_split
在大写字母前面的位置使用正向先行断言来拆分字符串:
$pieces = preg_split('/(?=[A-Z])/',$str);
如果你想把它分割成hello
和ister
,可以这样做:
$pieces = preg_split('/[A-Z]/',$str);
$result = preg_replace("([A-Z])", " $0", "helloMister");
print_r(explode(' ', $result));
hacky hack. 只要不在输入字符串中放置空格即可。
关于所选答案的进一步说明。
如果您在文本中处理缩写词,它将把OOP
更改为O O P
然后,您可以使用preg_split('/(?=[A-Z][a-z])/', $text)
向前查找小写字母,以完全捕获单词。
扩展Mathew的答案,这个完美地运作了,
$arr = preg_replace("([A-Z])", " $0", $str);
$arr = explode(" ",trim($arr));
看看preg_split,它类似于explode但接受正则表达式
preg_split('~[A-Z]~',$inputString)