PHP:str_replace() - 忽略空格

时间:2015-11-18 10:54:41

标签: php whitespace str-replace

我有一个类似, ] }

的字符串

我想用] }

替换它

问题是我不知道,]之间是否会有空格。可能存在空白区域或者可能没有空白区域。可能有标签或可能有换行符。

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

3 个答案:

答案 0 :(得分:2)

而不是str_replace,您可以像{/ p>一样使用preg_replace

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

答案 1 :(得分:2)

您可以regex使用preg_replace

$str = preg_replace('/,\s*(?=]\s*})/', "", $str);
  • \s*表示任意数量的空白(\s[ \t\r\n\f]的{​​{3}})
  • (?=]\s*}) shorthand用于检查,\s*后面是否]\s*}

lookahead

答案 2 :(得分:1)

对不起,这是没有测试的。这是preg_replace的替代方案。这将在第二个参数\t\n,中指定。因此,在修剪之后,您将被留下]}

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

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

如果您不确定是否有回车符或其中的垂直标签,您可以

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

这将首先减少逗号,然后修剪这些字符,\t\r\0\x0B

这里是demo