1

因为json不支持评论我需要我自己的函数来清理我的评论我的评论是css风格,像这样

/*comment*/

我尝试了以下

    $json = preg_replace("/(\/\*.?\*\/)/", "", $json);

但没有运气。谢谢

4

4 回答 4

4
echo preg_replace("#/\*.*?\*/#s", "", $json);

显着变化:

  • 我用作#模式分隔符。通过这样做,我不需要转义正斜杠,使正则表达式更易于阅读。
  • 我添加了s标志,这使得.也匹配换行符。

请注意,这将破坏 json 字符串中的注释。将被破坏的示例 json 对象

{"codeSample": " /*******THIS WILL GET STRIPPED OUT******/"}
于 2013-07-21T21:14:33.417 回答
2

使用以下内容:

$json = preg_replace('!/\*.*?\*/!s', '', $json); // remove comments
$json = preg_replace('/\n\s*\n/', "\n", $json); // remove empty lines that can create errors

这将清除注释、多行注释和空行

编辑:正如一些人在评论中所说,您可以使用:

 $json = preg_replace('/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/', '', $json);

仅删除字符串中未找到的注释。

于 2013-07-21T21:12:16.257 回答
2
$string = "some text /*comment goes here*/ some text again /*some comment again*/";
$string = preg_replace( '/\s*(?!<\")\/\*[^\*]+\*\/(?!\")\s*/' , '' , $string );
echo $string; // some textsome text again
于 2013-07-21T21:12:30.557 回答
0

删除单行和多行注释的完整 php 代码。

$json = preg_replace('!/\*.*?\*/!s', '', $json); //Strip multi-line comments: '/* comment */'
$json = preg_replace('!//.*!', '', $json);       //Strip single-line comments: '// comment'
$json = preg_replace('/\n\s*\n/', "\n", $json);  //Remove empty-lines (as clean up for above)

在这里您可以测试代码的站点:https ://www.phpliveregex.com

要测试第一行代码,请填写如下图:

于 2019-02-08T07:04:00.430 回答