忽略java中的多行注释

时间:2014-07-09 12:37:33

标签: java regex reluctant-quantifiers

我正在编写一个程序,我需要忽略传递的文件中的注释。 我在这个问题上阅读了关于Regex模式的内容。如果它在一行中定义,我可以忽略单行注释(// ...)和多行注释(/.../ )。 但是我很难忽视多行注释,如下所示:

>

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

我使用的单行

  

“//.*$”

和第二个,

  

“/ \ \ *。* \ \ * /”

某处我甚至读到了Reluctanat量词会有所帮助...尝试使用正则表达式和不情愿的量词的不同模式...没有快乐.. 有人可以帮我弄这个吗..?

由于

4 个答案:

答案 0 :(得分:1)

我认为它适合你:

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

或单行和多行注释:

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

答案 1 :(得分:1)

.通常与\r\n等新行字符不匹配。 但是,您可以使用DOT_ALL来更改此行为。这与(?s)相同。

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

此更换应在处理单行注释之前完成。并且.不应与新行匹配。

答案 2 :(得分:0)

感谢大家的建议..但是,我得到了一个确切的解决方案......模式 " /\*.+?\*/&# 34(一个或多个);在删除多行注释时工作正常..

答案 3 :(得分:0)

您可以使用以下方法解决问题       “(αS)/ \ *。 \ /”       “/ \ * [\ r \ n]的 \ /”