我有这样的字符串:
SadnessSorrowSadnessSorrow
单词串联在一起,没有任何空格。每个单词都以大写字母开头。我想将这些单词分开,然后选择前2个单词放入新字符串中。
我需要使用preg_match
函数在php应用程序中执行此操作。
我应该怎么做?
我尝试使用[A-Z]
,但由于某种原因我无法正确使用它。
答案 0 :(得分:3)
在这里,我们还可以将字符串按大写字母拆分,也许类似于:
$str = "SadnessSorrowSadnessSorrow";
$str_array = preg_split('/\B(?=[A-Z])/s', $str);
foreach ($str_array as $value) {
echo $value . "\n";
}
根据bobble bubble的建议,最好使用\B(?=[A-Z])
代替(?=[A-Z])
,否则我们可以使用PREG_SPLIT_NO_EMPTY
。
Sadness
Sorrow
Sadness
Sorrow
答案 1 :(得分:2)
我发布问题后答案就闪了
preg_match_all('([A-Z][a-z]+)', 'SadnessSorrowSadnessSorrow', $matches);
它给出:
(
[0] => Sadness
[1] => Sorrow
[2] => Sadness
[3] => Sorrow
)