php отдельная строка заглавными буквами - PullRequest
2 голосов
/ 25 марта 2012

У меня есть, например, эта строка: "iCanSeeBluePeople", и мне нужно разделить ее на массив заглавными буквами и первым словом , которое начинается с строчными буквами так что я бы получил массив как ["i","Can","See","Blue","People"]

Строки могут иметь вид "grandPrix2009" => ["grand","Prix","2009"], "dog" => ["dog"], "aDog" => ["a","Dog"] и т. Д.

Я нашел этот код, который отлично работает, но я не применяю к числам и игнорирую строчную букву первого:

<?
$str="MustangBlueHeadlining";

preg_match_all('/[A-Z][^A-Z]*/',$str,$results);
?>

Спасибо за помощь

1 Ответ

3 голосов
/ 25 марта 2012

Вы можете использовать регулярное выражение /[a-z]+|[A-Z]+[a-z]*|[0-9]+/.

<?
    $str="thisIsATestVariableNumber000";
    preg_match_all('/[a-z]+|[A-Z]+[a-z]*|[0-9]+/',$str,$results);
    print_r($results);
?>

Результат :

Array
(
    [0] => Array
    (
        [0] => this
        [1] => Is
        [2] => ATest
        [3] => Variable
        [4] => Number
        [5] => 000
    )

)

Использовать /[a-z]+|[A-Z][a-z]*|[0-9]+/, если хотите ATest для разделения на A и Test.

<?
    $str="thisIsATestVariableNumber000";
    preg_match_all('/[a-z]+|[A-Z][a-z]*|[0-9]+/',$str,$results);
    print_r($results);
?>

Результат :

Array
(
    [0] => Array
    (
        [0] => this
        [1] => Is
        [2] => A
        [3] => Test
        [4] => Variable
        [5] => Number
        [6] => 000
    )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...