gpt4 book ai didi

php - 使用 preg_split 但保留定界符

转载 作者:行者123 更新时间:2023-12-02 07:25:41 24 4
gpt4 key购买 nike

我阅读了其他相关帖子,但无法使其适用于我的情况。

我有以下文字:

This. Is a test. I show. You.

我想使用带有定界符'的preg_split。 '(点 + 空格),但我需要在返回的数组中保留定界符。这是所需的结果:

array(
'0' => 'This.',
'1' => 'Is a test.',
'2' => 'I show.',
'3' => 'You.',
);

我已经尝试过的:

preg_split("/(\.\s/)", $text, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

最佳答案

使用零宽度断言(此处回顾):

$result = preg_split('~(?<=\.)\s~', $text, -1, PREG_SPLIT_NO_EMPTY);

或者您可以使用 \K 功能从整个匹配中删除左侧的所有内容:

$result = preg_split('~\.\K\s~', $text, -1, PREG_SPLIT_NO_EMPTY);

没有正则表达式(如果空格只是空格,并且如果最后一个点后面没有空格):

$chunks = explode('. ', $text);
$last = array_pop($chunks);
$result = array_map(function ($i) { return $i . '.'; }, $chunks);
$result[] = $last;

或更好:

$result = explode(' #&§', strtr($text, ['. '=>'. #&§']));

关于php - 使用 preg_split 但保留定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com