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);
抱歉,这是未经测试的。这是 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
我有一个类似于 , ] }
我想用] }
问题是不知道,
和]
之间会不会有白色的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);
抱歉,这是未经测试的。这是 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