我试图替换java格式的源代码(使用java本身)中的每个声明字符串。从中删除字符串的源代码可能如下所示(>…<指示应匹配的内容):
package a.b;
import b.a.*;
@SomeAnnotation(>"abc"<)
public class XY extends YZ {
String s = >"Hello \"World\""<;
public static void main(String[] args) {
System.out.println(>"Hello World"<);
}
}
想象一下这些都存储在一个字符串中,可能没有换行符。我现在需要一个能找到所有这些的正则表达式。字符串中的转义引号有问题。我最好的办法是 ".*[^\]"
.
它是否会检测到这些内部评论并不重要,只要它没有超出评论。
1条答案
按热度按时间b4lqfgs41#
如果使用bufferedlinereader读入另一个java应用程序中的源代码并检查每一行,则可以使用以下正则表达式:
但是,当在javareplace方法中使用时,您可能希望转义所有反斜杠。
例如。:
可能需要额外的转义序列。另外,您可能希望在旁边的字符串中添加更多的特殊字符
\w
以及\s
.我建议将正则表达式粘贴到正则表达式检查器中,如https://regex101.com/ 以及您的示例代码以获取更多解释。