2012-01-25 4 views

ответ

76

Если вы хотите разделить helloMister в hello и Mister вы можете использовать preg_split разбить строку в точке, непосредственно перед прописной буквы по используя положительный предпросмотр утверждение:

$pieces = preg_split('/(?=[A-Z])/',$str); 

и если вы хотите, чтобы разделить его как hello и ister вы можете сделать:

$pieces = preg_split('/[A-Z]/',$str); 
+0

Это тоже очень мило, спасибо! – cgwebprojects

+6

Если первый символ уже имеет верхний регистр, это регулярное выражение генерирует один пустой элемент, если вы хотите опустить, что вы можете сначала использовать lcfirst: $ pieces = preg_split ('/. (? = [AZ]) /', lcfirst ($ str)) ; – zeldi

+0

Это хорошо работает, если первый символ является строчным, но предположим, что нам нужно взорвать 'RecipesActionModel', и нам нужен только массив из трех элементов« Receipe, Action, Model ». Это решение делает массив с четырьмя элементами, элемент 0 пустым. – SaidbakR

-1

Посмотрите на preg_split, это как взорваться, но принимает регулярное выражение,

preg_split('~[A-Z]~',$inputString) 
+0

Я думал о том же, я полагаю, они также хотят, чтобы заглавная буква была частью второго слова. – Matthew

+0

Прохладно это хорошо, это выводит массив? – cgwebprojects

3

Посмотрите preg_split

$result = preg_replace("([A-Z])", " $0", "helloMister"); 
print_r(explode(' ', $result)); 

Hacky хак. Просто не используйте пробелы в строке ввода.

+0

Nevermind, дерьмо моего, используйте @codeadict. – Matthew

+1

наименее вы пробовали! но его лучше lol – cgwebprojects

Смежные вопросы