我有像这样的字符串:
SadnessSorrowSadnessSorrow
其中单词连接在一起,没有任何空格。每个单词都以大写字母开头。我想把这些单词分开,然后选择前两个单词放入一个新字符串中。
我需要在一个使用preg_match
函数的php应用程序中做到这一点。
我该怎么做呢?
我试着使用[A-Z]
,但不知何故我不能正确使用它。
发布于 2019-05-26 03:59:19
在这里,我们还可以按大写字母拆分字符串,可能类似于:
$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
发布于 2019-05-26 03:37:50
一旦我发布了这个问题,答案就闪现了:
preg_match_all('([A-Z][a-z]+)', 'SadnessSorrowSadnessSorrow', $matches);
它提供了:
(
[0] => Sadness
[1] => Sorrow
[2] => Sadness
[3] => Sorrow
)
https://stackoverflow.com/questions/56308007
复制相似问题