gpt4 book ai didi

php - 如何在 PHP 中通过重复字符拆分字符串?

转载 作者:可可西里 更新时间:2023-10-31 23:03:16 24 4
gpt4 key购买 nike

我正在尝试将二进制字符串拆分为重复字符数组。

例如,用此函数拆分的 10001101 数组将是:

    $arr[0] = '1';
$arr[1] = '000';
$arr[2] = '11';
$arr[3] = '0';
$arr[4] = '1';

(我试图让自己说清楚,但如果你还是不明白,我的问题与this 相同,但针对 PHP,而非 Python)

最佳答案

您可以使用 preg_split像这样:

示例:

$in = "10001101";
$out = preg_split('/(.)(?!\1|$)\K/', $in);

print_r($out);

输出:

Array
(
[0] => 1
[1] => 000
[2] => 11
[3] => 0
[4] => 1
)

正则表达式:

  • (.) - 匹配单个字符并捕获它
  • (?!\1|$) - 查看下一个位置并匹配它是否与我们刚刚找到的位置不同,也不是字符串的结尾。
  • \K - 将匹配的文本保持在整个正则表达式匹配之外,使该匹配为零宽度。

注意:这在 5.6.13 之前的 PHP 版本中不起作用,因为有一个 bug involving bump-along behavior with \K .


另一种适用于早期版本的正则表达式是:

$out = preg_split('/(?<=(.))(?!\1|$)/', $in);

这使用后视而不是 \K 来使匹配零宽度。

关于php - 如何在 PHP 中通过重复字符拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33196924/

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