use*_*837 7 java regex eclipse
我正在尝试在Eclipse(Java)工作区中进行搜索,以查找非最终的静态变量的所有实例.
我尝试了各种正则表达式,但它们不会产生任何匹配.有人可以建议一个正则表达式匹配所有包含static和不包含的行final,而不是以{?
关于不以a结尾的最后一部分{将消除静态方法.
一个例子:
public class FlagOffendingStatics {
private static String shouldBeFlagged = "not ok";
private static final String ok = "this is fine";
public static void methodsAreOK() {
}
}
Run Code Online (Sandbox Code Playgroud)
这种模式有效:
[^(final)] static [^(final)][^(\})]*$
Run Code Online (Sandbox Code Playgroud)
这是一个测试:
$ cat test.txt
private int x = "3";
private static x = "3";
private final static String x = "3";
private static final String x = "3";
private static String x = "3";
public static void main(String args[]) {
blah;
}
$ grep "[^(final)] static [^(final)][^(\})]*$" test.txt
private static x = "3";
private static String x = "3";
Run Code Online (Sandbox Code Playgroud)
(我意识到这private static x = "3";不是有效的语法,但模式仍然可以.)
该模式占的事实final之前或之后出现static带[^(final)] static [^(final)].该模式的其余部分[^(\})]*$旨在防止任何{字符出现在该行的其余部分中.
如果有人喜欢这样编写方法语句,那么这种模式将不起作用:
private static void blah()
{
//hi!
}
Run Code Online (Sandbox Code Playgroud)