php - 在每次字符更改时将空格插入字符串

标签 php regex recursion split preg-replace

我正在尝试创建一个在所有“不同字符”之间有空格的字符串,例如:

"11131221133112" should result in "111 3 1 22 11 33 11 2"
"1321131112" should result in "1 3 2 11 3 111 2"

我尝试了以下递归函数,不知道这是否是最好的方法,因为我在 PHP 中找不到任何内置函数。

function stringSplitter($str) {
    $strArr = str_split($str);

    foreach ($strArr as $key => $value) {
        if ($key == count($strArr)-1) return (substr($str, 0));

        if ($value != $strArr[$key+1]) {
            return (substr($str, 0, $key+1)." ".stringSplitter(substr($str, $key)));
        }
    }
}

由于某种原因,这个函数似乎无限迭代,我想不通为什么。我哪里出错了?

有更好的方法吗?我想使用 explode 来输出数组中的答案字符串,这可以直接完成吗?

最佳答案

RegEx 方法,
在正则表达式 \1 中,它是对 \d

捕获的内容的反向引用
 <?php 
    $pattern    = '/(\d)\1*/';
    $str        = '11131221133112';

    $r = preg_match_all($pattern, $str, $result);
    if ($r !== FALSE) {
        var_dump(implode(' ', $result[0]));
    }
    else {
        print 'error';  
    }

关于php - 在每次字符更改时将空格插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199813/

相关文章:

recursion - tcl 深度递归文件搜索,搜索扩展名为 *.c 的文件

c++ - 在C++中的递归函数中返回

java - 关于递归的问题,尝试安排最大事件数

php - 如何通过 Swift 邮件程序添加标题

javascript - 韩文和字母正则表达式返回 false

javascript - Installshield javascript 中的密码验证和警报消息

sql - 在 data studio 中提取匹配 URL

php - 向表中插入值失败

php - 搜索结果不显示

php - 自定义 Wordpress 搜索表单模板 (Genesis)