如何用正则表达式 匹配注释语句,也就是/* */,其中可以有多的/*,不可以有多的*/,除非多出的*/被双引号括住.
1个回答
展开全部
给你写了个,不知道是不是这个效果:
\/\*[\s\S]*?(?<!")\*\/(?!")
关键解释:
(?!“) 匹配后面跟的不是双引号的位置
(?<!") 匹配前面不是双引号的位置
PHP测试代码:
<?php
$str = <<<EOT
/*
/* /* /* "*/"
*/
*/
EOT;
preg_match_all('/\/\*[\s\S]*?(?<!")\*\/(?!")/i', $str, $matches);
print_r($matches);
?>
\/\*[\s\S]*?(?<!")\*\/(?!")
关键解释:
(?!“) 匹配后面跟的不是双引号的位置
(?<!") 匹配前面不是双引号的位置
PHP测试代码:
<?php
$str = <<<EOT
/*
/* /* /* "*/"
*/
*/
EOT;
preg_match_all('/\/\*[\s\S]*?(?<!")\*\/(?!")/i', $str, $matches);
print_r($matches);
?>
参考资料: http://deerchao.net/tutorials/regex/regex.htm
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询