RegEx и сплит CamelCase - PullRequest
       36

RegEx и сплит CamelCase

4 голосов
/ 09 ноября 2011

Я хочу получить массив всех слов с заглавными буквами, которые включены в строку.Но только если строка начинается с «set».

Например:

- string "setUserId", result array("User", "Id")
- string "getUserId", result false

Без ограничений по «set» RegEx выглядит как /([A-Z][a-z]+)/

1 Ответ

4 голосов
/ 09 ноября 2011
$str ='setUserId';                          
$rep_str = preg_replace('/^set/','',$str);
if($str != $rep_str) {
        $array = preg_split('/(?<=[a-z])(?=[A-Z])/',$rep_str);
        var_dump($array);
}

Смотри

Также ваше регулярное выражение также будет работать.

$str = 'setUserId';
if(preg_match('/^set/',$str) && preg_match_all('/([A-Z][a-z]*)/',$str,$match)) {
        var_dump($match[1]);                                                    
}

Посмотри

...