用于去除注释和多行注释以及空行的正则表达式
2022-08-30 16:20:44
我想解析一个文件,我想使用php和正则表达式来剥离:
- 空行或空行
- 单行注释
- 多行注释
基本上我想删除任何包含
/* text */
或多行注释
/***
some
text
*****/
如果可能,使用另一个正则表达式来检查该行是否为空(删除空行)
这可能吗?有人可以向我发布一个正则表达式来做到这一点吗?
多谢。
我想解析一个文件,我想使用php和正则表达式来剥离:
基本上我想删除任何包含
/* text */
或多行注释
/***
some
text
*****/
如果可能,使用另一个正则表达式来检查该行是否为空(删除空行)
这可能吗?有人可以向我发布一个正则表达式来做到这一点吗?
多谢。
$text = preg_replace('!/\*.*?\*/!s', '', $text);
$text = preg_replace('/\n\s*\n/', "\n", $text);
请记住,如果您正在分析的文件具有包含与这些条件匹配的内容的字符串,则您使用的任何正则表达式都将失败。例如,它会变成这样:
print "/* a comment */";
进入这个:
print "";
这可能不是你想要的。但也许是,我不知道。无论如何,正则表达式在技术上无法以一种避免此问题的方式解析数据。从技术上讲,我之所以这么说,是因为现代PCRE正则表达式已经附加了许多黑客攻击,使它们既能够做到这一点,更重要的是,不再是正则表达式,而是其他任何东西。如果你想避免在引号内或其他情况下剥离这些东西,那么一个完整的解析器是无可替代的(尽管它仍然非常简单)。