我希望获取包含在字符串中的所有大写字母的单词数组。但是仅当该行以“set”开头时。
例如:
- string "setUserId", result array("User", "Id")
- string "getUserId", result false
没有关于“set”的限制,正则表达式长这样 /([A-Z][a-z]+)/
我希望获取包含在字符串中的所有大写字母的单词数组。但是仅当该行以“set”开头时。
例如:
- string "setUserId", result array("User", "Id")
- string "getUserId", result false
没有关于“set”的限制,正则表达式长这样 /([A-Z][a-z]+)/
$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]);
}
$name = 'setUserId';
preg_match_all('/(?:^|[A-Z])[a-z]+/', $name, $matches);
$data = $matches[0];
$prefix = array_shift($data);
if ($prefix == 'set') {
// 使用包含数组('User', 'Id')的 $data 变量进行操作
}
- Tui Kiken