我想用" ," 替换每一秒的空格preg_replace.并输入如下字符串:
$string = 'a b c d e f g h i';
Run Code Online (Sandbox Code Playgroud)
应该导致这样的输出:
a b,c d,e f,g h,i
Run Code Online (Sandbox Code Playgroud)
谢谢
您可以使用的组合explode,array_chunk,array_map和implode:
$words = explode(' ', $string);
$chunks = array_chunk($words, 2);
$chunks = array_map(function($arr) { return implode(' ', $arr); }, $chunks);
$str = implode(',', $chunks);
Run Code Online (Sandbox Code Playgroud)
但它假设每个单词由一个空格分隔.
另一个可能更简单的解决方案是这样使用preg_replace:
preg_replace('/(\S+\s+\S+)\s/', '$1,', $string)
Run Code Online (Sandbox Code Playgroud)
该模式(\S+\s+\S+)\s匹配一个或多个非空白字符(\S+)的任何序列,后跟一个或多个空白字符(\s+),后跟一个或多个非空白字符,后跟一个空白字符,并用逗号替换最后一个空格.领先的空白将被忽略.
所以匹配将在这种情况下:
a b c d e f g h i
\__/\__/\__/\__/
Run Code Online (Sandbox Code Playgroud)
然后将它们替换如下:
a b,c d,e f,g h,i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3775 次 |
| 最近记录: |