相关疑难解决方法(0)

通过REGEX删除CSS注释时出错

证明这两个序列(以前都有效)

"`([\n\A;]+)\/\*(.+?)\*\/`ism" => "$1",     // error
"`([\n\A;\s]+)//(.+?)[\n\r]`ism" =>"$1\n",  // error
Run Code Online (Sandbox Code Playgroud)

现在在PHP 7.3中引发错误

警告:preg_replace():编译失败:转义序列在字符类偏移量4中无效

语境:考虑一下这个技巧,它可以从字符串中删除CSS注释

$buffer = ".selector {color:#fff; } /* some comment to remove*/";
$regex = array(
"`^([\t\s]+)`ism"=>'',
"`^\/\*(.+?)\*\/`ism"=>"",
"`([\n\A;]+)\/\*(.+?)\*\/`ism"=>"$1",     // 7.3 error
"`([\n\A;\s]+)//(.+?)[\n\r]`ism"=>"$1\n", // 7.3 error
"`(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+`ism"=>"\n"
);
$buffer = preg_replace(array_keys($regex),$regex,$buffer);
//returns cleaned up $buffer value with pure css and no comments
Run Code Online (Sandbox Code Playgroud)

请参阅:https//stackoverflow.com/a/1581063/1293658

Q1 -任何想法什么是错,在这种情况下,正则表达式?该线程似乎表明它只是放错了反斜杠 https://github.com/thujohn/twitter/issues/250

Q2 -这是一个PHP 7.3的错误或与此代码正则表达式序列的问题?

php regex php-7.3

5
推荐指数
1
解决办法
79
查看次数

从 JSON 数据中删除注释

我需要/*...*/从 JSON 数据中删除所有样式注释。我如何使用正则表达式来实现这样的字符串值

{
    "propName": "Hello \" /* hi */ there."
}
Run Code Online (Sandbox Code Playgroud)

保持不变?

php regex json comments

2
推荐指数
1
解决办法
1701
查看次数

标签 统计

php ×2

regex ×2

comments ×1

json ×1

php-7.3 ×1