我们正在开发一个eclipse插件工具来从工作区项目中删除sysout语句。我们只能部分实现我们的目标。如果sysouts在一行中,我们可以轻松删除它。但是如果sysout跨越几行(通常是由于代码格式而发生的),这就是我们面临问题的时候。
例如:
System.out.println("Hello World");
删除此行的正则表达式很简单:
System.out.println*
System.out.println(New Line)("HelloWorld");
这就是问题所在。有人能建议我如何使用java正则表达式替换它吗?
我建议
String regex = "System\.out\.println[^)]+[)]\s*;"
其中[^)]
将扫描到最后一个括号。但是,这将在多种情况下失败:
更进一步,使用Eclipse的内置解析器(它理解词法问题、注释,并且可以标记对System.out的任何编译时引用)。
问题内容: 我正在尝试以的形式找到网页上的所有链接,或者我做了一个正则表达式,并且可以正常工作: 但是,有没有更短的写方法呢?我重复了:// [^ / \“] + /两次,可能没有必要。我尝试了各种方法,但是没有用。我尝试了: 很明显,我在这里缺少了一些东西,或者我只是对Python正则表达式不够了解。 问题答案: 您正在使用捕获组,并在使用捕获组时改变其行为(它只会返回捕获组的内容)。您的正则表
问题内容: 最近,我不得不搜索许多字符串值,以查看哪个字符串与某种模式匹配。在用户输入搜索词之前,字符串值的数量和模式本身都不清楚。问题是,我的应用程序每次运行以下行时,我都已注意到: 大约需要40微秒。不用说,当字符串值的数量超过几千个时,它会太慢。 该模式类似于: 这里的A〜F只是示例,但是模式类似于上面的东西。 请注意 模式实际上每次搜索都会改变。例如,“ A * B * C ”可以更改为W
问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪
最近,我不得不搜索许多字符串值,以查看哪一个匹配某个模式。在用户输入搜索项之前,字符串值的数量和模式本身都不清楚。问题是,每次我的应用程序运行以下行时,我都会注意到:
我需要为一个设计糟糕的旧应用程序编写JUnit测试,该应用程序正在向标准输出写入大量错误消息。当方法正确运行时,它将返回一个XML响应: 但当它得到格式错误的XML或不理解请求时,它会返回,并将一些内容写入标准输出。 在JUnit中是否有任何方法断言控制台输出?要捕获以下情况:
问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。