我想要用包含在字符串中的大写字母来获取所有单词的数组。但是,只有当该行以“set”开头时。正则表达式和split camelCase
例如:
- string "setUserId", result array("User", "Id")
- string "getUserId", result false
没有关于 “设置” 正则表达式看起来像/([A-Z][a-z]+)/
我想要用包含在字符串中的大写字母来获取所有单词的数组。但是,只有当该行以“set”开头时。正则表达式和split camelCase
例如:
- string "setUserId", result array("User", "Id")
- string "getUserId", result false
没有关于 “设置” 正则表达式看起来像/([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]);
}
你不能用匹配来做它我认为,因为PCRE不支持在lookbehinds中的变量重复。而是使用@codaddict解决方案。 – FailedDev
编辑:只有一个正则表达式。 – FailedDev