我想根据我想要的模式使用空格分隔字符串。在每两个字,有时三个。例如:如何在php中将一个空格插入到一个字符串中?
$string = 'marketplace';
成为
$string = 'mark et pl ace';
我知道preg_replace
能做到这一点,但我不知道的模式。有人可以告诉我该怎么做吗?谢谢
我想根据我想要的模式使用空格分隔字符串。在每两个字,有时三个。例如:如何在php中将一个空格插入到一个字符串中?
$string = 'marketplace';
成为
$string = 'mark et pl ace';
我知道preg_replace
能做到这一点,但我不知道的模式。有人可以告诉我该怎么做吗?谢谢
如果你想使用preg_replace ....但是@ billyonecan的str_split可能是一个更好的方法。
preg_replace('/(..)/','$1 ', $string);
也许'最后一个空间(trim)(...)'。 – 2014-08-27 10:59:02
根据OP要求,这应该被接受。尽管如此,@vlzvl答案也是正确的。 – 2014-08-27 11:02:18
然后如果你想每做一个'n':'/(。{n})/'eg:'/(。{3})/'如果原始字符串长度为'n'的精确倍数,Joop指出你可能想要结果rtrim()。 – Yorick 2014-08-27 11:07:45
这个?
$string = 'market';
echo implode(" ",str_split($string,2));
你的答案是相同的@billyonecan – 2014-08-27 10:57:45
确实,只是看到了评论。 – 2014-08-27 10:58:02
模仿然后... – 2014-08-27 10:58:55
这种模式应与preg_replace
工作:
$result = preg_replace("/(\\w{2})/uim", "$1 ", $string);
例如:
使用此功能。只需决定哪些步骤应放置空间。
function split_by_position($string, $position){
$splitted = str_split($string, $position);
foreach($splitted as $part){
$result .= $part.' ';
}
echo $result;
}
$string = 'market';
echo split_by_position($string, 2);
billyonecan的解决方案真的看起来更好,当然更短。我建议你使用他的。 ^^
只需使用
implode(" ",str_split($string, 2))
在这里,重要的代码是
<?php
$string = "market";
echo implode(" ",str_split($string, 2));
?>
str_split
的$string
转换成一个阵列,其内容的2个字符包。
然后implode
将使用空格b/w加入所有数组值的数组。
它是否修复了两个字符? – 2014-08-27 10:51:33
'@ string = implode('',str_split($ string,2));' – billyonecan 2014-08-27 10:52:21
@Abaji,那么billyonecan的anser是完美的为您的需要! – 2014-08-27 10:56:00