在另一个字符串的多个索引处插入字符串。 (最好使用preg_replace)

时间:2017-01-11 10:43:49

标签: php regex

我有一个字符串:ABSOLUTEWORKLEADSTOSUCCESS

我有另一个字符串:'+'

现在我如何在各种索引处插入第二个字符串,让我们说第一个字符串(3,6,9)。

PS:我知道如何通过substr()来做到这一点。我正在寻找的是使用regex / preg_replace()

的东西

2 个答案:

答案 0 :(得分:1)

免责声明:我认为下面的解决方案是愚蠢的,但它完全符合您的要求:使用正则表达式和preg_replace函数在特定索引处插入加号:

<?php

// find 3 groups: three first symbols, two after them, and two more
// find the pattern from the beginning of a string
$regex = '/^(.{3})(.{2})(.{2})/';
$str = 'ABSOLUTEWORKLEADSTOSUCCESS';

// perform a replace: use first group (3 symbols), insert a plus
// then use a second group (2 symbols) and insert another plus,
// then use a third group (2 more symbols) and insert the last plus
$out = preg_replace($regex, '$1+$2+$3+', $str);
echo $out;

预览here

答案 1 :(得分:0)

您不能使用preg_replace插入字符串,因为您需要循环索引并使用substr_rplace在特定索引处插入第二个字符串,如下所示

$var = 'ABSOLUTEWORKLEADSTOSUCCESS';
$indexes = array(3,6,9);
$newString = $var;

foreach($indexes as $key=>$value) {  
  $newString = substr_replace($newString, '+', $value+$key, 0) . "\n";
}
echo $newString;

在此检查输出:https://eval.in/714177