这种模式有效:
[^(final)] static [^(final)][^(\})]*$
这是一个测试:
$ 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";
(我意识到这private static x = "3";
不是有效的语法,但模式仍然可以.)
该模式占的事实final
之前或之后出现static
带[^(final)] static [^(final)]
.该模式的其余部分[^(\})]*$
旨在防止任何{
字符出现在该行的其余部分中.
如果有人喜欢这样编写方法语句,那么这种模式将不起作用:
private static void blah() { //hi! }