gpt4 book ai didi

用于替换 System.out.println 模式的 Java 正则表达式

转载 作者:行者123 更新时间:2023-12-03 23:13:38 26 4
gpt4 key购买 nike

我们正在开发一个 eclipse 插件工具来从工作区项目中删除 sysout 语句。我们只能部分实现我们的目标。如果系统输出在一行中,我们可以轻松删除它。但是,如果 sysout 跨越几行(通常由于代码格式而发生),这就是我们面临问题的时候。

例如:

System.out.println("Hello World");

删除这一行的正则表达式很简单:

System.out.println*

但是如果代码是这样的:

System.out.println(New Line)("HelloWorld");

这就是问题所在。谁能建议我如何使用 Java 正则表达式替换它。

最佳答案

我建议

String regex = "System\.out\.println[^)]+[)]\s*;"

[^)]+ 将扫描到右括号。但是,这在多种情况下会失败:

  • (可能不平衡)输出中的括号
  • 注释掉的代码
  • 可以省略';'的少数情况
  • System.out 被分配给另一个变量,而不是被直接使用的情况

加倍努力并使用 Eclipse's in-built parser (它理解词法问题、注释,并且可以标记对 System.out 的任何编译时引用)。

关于用于替换 System.out.println 模式的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606641/

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