【问题标题】:ignoring multiple line comments in java忽略java中的多行注释
【发布时间】:2014-07-09 12:37:32
【问题描述】:

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

>

/* ........ ………… ....*/

对于我使用的单行

"//.*$"

对于第二个,

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

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

谢谢

【问题讨论】:

    标签: java regex reluctant-quantifiers


    【解决方案1】:

    我认为它对你有用:

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

    或单行和多行注释:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        感谢大家的建议..但是,我有一个确切的解决方案...模式 "(?s)/\*.+?\*/" 在删除多行 cmets 时效果很好..

        【讨论】:

        • 请使用反引号`format code like this`
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-21
          • 1970-01-01
          • 2015-08-05
          • 1970-01-01
          • 2012-09-01
          • 2021-06-07
          • 1970-01-01
          • 2016-05-22
          相关资源
          最近更新 更多