我正在编写一个程序,我需要忽略文件中传递的注释。我读了关于正则表达式模式的文章,并且能够忽略单行注释(//…)和多行注释,如果它定义在单行中(/…/)。但是我在忽略多行注释时遇到了困难,如下所示:
>
/* ..................…*/
单行我用
"//.*$"
第二个
"/ *。* */"
我甚至在某个地方读到,勉强量词会有所帮助…尝试使用regex和不情愿量词的不同模式…没有欢乐. .有人能帮我一下吗?
谢谢
我想它会对你有用的:
/*([^*]|[rn]|(*+([^*/]|[rn])))**+/
或者对于单行和多行注释:
(/*([^*]|[rn]|(*+([^*/]|[rn])))**+/)|(//.*)
.
通常不匹配r
, n
等新行字符。然而,你可以使用DOT_ALL来改变这种行为。这与(?s)
相同。
"(?s)/\*.*\*/"
"/\*[.rn]*\*/"
这个替换应该在处理单行注释之前完成。并且.
不应该匹配新行
谢谢大家的建议。然而,我得到了一个精确的解…该模式"(?)/ * + ?*/"可以很好地删除多行注释..
您可以使用以下方法来解决您的问题"(?)/ *。 /"/[。 r n] /"