Php 如何替换每秒钟的空白?
我希望使用Php 如何替换每秒钟的空白?,php,pcre,Php,Pcre,我希望使用preg\u replace将每秒的空格替换为“,”。输入字符串如下: $string = 'a b c d e f g h i'; a b,c d,e f,g h,i preg_replace('/(\S+\s+\S+)\s/', '$1,', $string) a b,c d,e f,g h,i 应产生如下输出: $string = 'a b c d e f g h i'; a b,c d,e f,g h,i preg_replace('/(\S+\s+\S+)\s/'
preg\u replace
将每秒的空格替换为“,
”。输入字符串如下:
$string = 'a b c d e f g h i';
a b,c d,e f,g h,i
preg_replace('/(\S+\s+\S+)\s/', '$1,', $string)
a b,c d,e f,g h,i
应产生如下输出:
$string = 'a b c d e f g h i';
a b,c d,e f,g h,i
preg_replace('/(\S+\s+\S+)\s/', '$1,', $string)
a b,c d,e f,g h,i
谢谢因为您想搜索和替换字符,您可以通过以下方式进行:
// function to replace every '$n'th occurrence of $find in $string with $replace.
function NthReplace($string,$find,$replace,$n) {
$count = 0;
for($i=0;$i<strlen($string);$i++) {
if($string[$i] == $find) {
$count++;
}
if($count == $n) {
$string[$i] = $replace;
$count = 0;
}
}
return $string;
}
//函数,用于将$find在$string中的每一次“$n”处替换为$replace。
函数n替换($string,$find,$replace,$n){
$count=0;
对于($i=0;$i),您可以使用和的组合:
但它假设每个单词都由一个空格分隔
另一个可能更简单的解决方案是这样使用:
$string = 'a b c d e f g h i';
a b,c d,e f,g h,i
preg_replace('/(\S+\s+\S+)\s/', '$1,', $string)
a b,c d,e f,g h,i
模式(\S+\S+\S+\S
匹配一个或多个非空白字符(\S+
)的任意序列,后跟一个或多个空白字符(\S+
),后跟一个或多个非空白字符,后跟一个空白字符,并用逗号替换最后一个空白。将忽略前导空白
因此,在这种情况下,匹配将是:
a b c d e f g h i
\__/\__/\__/\__/
然后,将其替换为以下内容:
如果上一次调用返回的计数器号码为奇数,则为不同的字符串调用fun
时,此操作将失败。只需在所述字符串上连续调用preg\u replace\u callback(“/()/”、'fun'、$string)
两次,就会得到不同的结果。