$string = 'onetwothreefourfive';
如何将其转换为
$string = ' three ';
我的输入是three
?
答案 0 :(得分:2)
无需使用原始字符串操作,正则表达式来解救!
$string = preg_replace('/(three\K)?./s', ' ', $string);
有关使用内容的详细信息,如果有任何不清楚之处,请查看PHP手册的PCRE Pattern Syntax章节。
答案 1 :(得分:1)
无需使用昂贵和/或复杂的正则表达式:
function replace_space($str, $keep, $hold) {
$str = explode($keep, $str);
foreach ($str as &$piece) {
$piece = str_repeat($hold, strlen($piece));
}
return implode($keep, $str);
}
echo replace_space('onetwothreefourfivethreefour', 'three', ' ');
在大海捞针中测试并使用多个针头。
答案 2 :(得分:1)
$first_chunk = str_repeat(' ', strpos($string, 'three'));
$last_chunk = str_repeat(' ', strlen($string) - strpos($string, 'three') - strlen($string));
$string = $first_chunk . 'three' . $last_chunk;
没有经过测试,不会在大海捞针,YMMV,yada yada yada处理多个针。