PHP: str_replace() - 忽略白色 space

PHP: str_replace() - ignore white space

我有一个类似于 , ] }

的字符串

我想用] }

代替

问题是不知道,]之间会不会有白色的space。可能有白space,也可能没有白space。可能有制表符,也可能有换行符。

如何将 ,<any white space here>] } 替换为 ] }

而不是 str_replace 你可以简单地使用 preg_replace 就像

echo preg_replace('/,\s*\]\s*}/',"] }",$string);
  • \s* \s 检查包含 new line,tabs,space* 的任何 space 字符是否出现零次或多次 space
  • \]\s*} 这将检查上面指定的 ] brace \s*} 大括号

您可以只使用 regex with preg_replace

$str = preg_replace('/,\s*(?=]\s*})/', "", $str);
  • \s* 表示任意数量的任意空格(\sshorthand for [ \t\r\n\f]
  • (?=]\s*}) lookahead 用于检查 ,\s* 是否紧跟 ]\s*}

See demo at eval.in

抱歉,这是未经测试的。这是 preg_replace 的替代方法。这将trim指定在第二个参数中,\t\n,。所以在 trimming 之后,你将剩下 ]}

"\t" (ASCII 9 (0x09)), a tab
"\n" (ASCII 10 (0x0A)), a new line (line feed)

echo ltrim($string, ", \t\n");

如果您不确定那里可能有回车 return 或垂直制表符,您可以

echo ltrim(ltrim($str1, ","));

这将首先trim逗号然后trim这些字符,</code>,<code>\t\r[= 19=], \x0B

这是一个demo