我想根據我想要的模式使用空格分隔字符串。在每兩個字,有時三個。例如:如何在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