0

我正在编写一个程序,我需要忽略传递的文件中的注释。我在这个问题上阅读了正则表达式模式..并且能够忽略单行注释(//...)和多行注释,如果它定义在单行(/.../)中。但是我面临着忽略多行注释的困难,如下所示:

>

/* ........ .......... ....*/

对于我使用的单行

"//.*$"

对于第二个,

"/\\*.*\\*/"

我什至在某处读到 Reluctanat 量词会有所帮助...尝试使用正则表达式和不情愿量词的不同模式...不高兴..有人可以帮我解决这个问题吗..?

谢谢

4

4 回答 4

1

.通常不匹配换行符,如,\r\n其他。但是,您可以使用 DOT_ALL 来改变这种行为。这与(?s).

"(?s)/\\*.*\\*/"
"/\\*[.\r\n]*\\*/"

这种替换应该在处理单行注释之前完成。并且不.应该匹配一个新行。

于 2014-07-09T13:02:01.563 回答
1

我认为它对你有用:

/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/

或者对于单行和多行注释:

(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)
于 2014-07-09T12:39:56.453 回答
0

谢谢大家的建议..但是,我得到了一个确切的解决方案......模式“(?s)/ \ *。+?\ * /”在删除多行注释方面效果很好......

于 2014-07-17T08:30:54.603 回答
0

您可以使用以下方法解决您的问题 "(?s)/\*. \ /" "/\*[.\r\n] \ /"

于 2014-07-17T08:43:44.903 回答