我有一个类似, ] }
我想用] }
问题是我不知道,
和]
之间是否会有空格。可能存在空白区域或者可能没有空白区域。可能有标签或可能有换行符。
如何将,<any white space here>] }
替换为] }
?
答案 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*}
答案 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