PHP上的正则表达式

PHP上的正则表达式,php,regex,Php,Regex,我在使用正则表达式拆分字符串时遇到问题 我已经搜索了关于regex的内容来拆分大写单词上的字符串,但我需要的是像下面的示例中那样拆分字符串 具有此示例数据: 这是第一句这是第二句 。。。字符串应按如下方式拆分: 这是第一句话 这是第二句话 有人知道这个问题的解决方案吗?您可以将令牌与断言结合使用 $str = 'This is First SentenceThis is Second Sentence'; $results = preg_split('~[a-z]\K(?=[A-Z])~',

我在使用正则表达式拆分字符串时遇到问题

我已经搜索了关于regex的内容来拆分大写单词上的字符串,但我需要的是像下面的示例中那样拆分字符串

具有此示例数据:

这是第一句这是第二句
。。。字符串应按如下方式拆分:

这是第一句话
这是第二句话
有人知道这个问题的解决方案吗?

您可以将令牌与断言结合使用

$str = 'This is First SentenceThis is Second Sentence';
$results = preg_split('~[a-z]\K(?=[A-Z])~', $str);
print_r($results);
或者同时使用“向后看”和“向前看”断言:

$results = preg_split('~(?<=[a-z])(?=[A-Z])~', $str);

因此,当大写字母出现在像
语句this
这样的单词中时,您希望拆分?因此,拆分点是“大写字母直接位于除空格以外的任何内容之后”?哇,这很有效。。谢谢……)但是“~”和“\K”是什么意思?
~
在这里用作模式分隔符。如果输入在句子的结尾/开头没有驼峰词,这种方法很好。考虑到“我有一个iPODIT是我父亲的礼物”。因此,ReGEX只能帮助完成这项任务。如果你想让它适用于任何语言,你可以使用Unicode属性:
Array
(
    [0] => This is First Sentence
    [1] => This is Second Sentence
)