gpt4 book ai didi

java - 删除所有多行注释

转载 作者:行者123 更新时间:2023-11-30 08:41:01 26 4
gpt4 key购买 nike

我研究了一段时间,但令人惊讶的是,我发现没有任何方法或正则表达式 可以正常工作。

我需要一种从源代码文件中删除各种单行和多行注释的方法。

各种正则表达式

sourceCode.replaceAll("(/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/|[ \\t]*//.*)", "");

我试过导致异常:

Exception in thread "main" java.lang.StackOverflowError

然后我也找到了this one之类的解决方案它运行良好,但在处理后的源代码中仍有一些注释字符 float ,这是不应该发生的。

另一种方法如this one几乎完美地工作,但它以 /*//Hi */ 形式的注释失败,并且完全忽略了这些 block 。

我确实从我尝试的每个正则表达式中得到了不同的结果。请让我知道如何可靠地完成这项任务。

最佳答案

这是来自 my answer on JavaScript comment removal 的简化版本:

替换:

(?m)((["'])(?:\\.|.)*?\2)|//.*?$|/\*[\s\S]*?\*/

$1

Demo here

我链接到的答案详细解释了这种模式的工作原理。这个更简单的原因是因为 Java 在语言语法中没有正则表达式文字。这些确实让替代品变得讨厌

关于java - 删除所有多行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com