我试图制作有效变量声明的Java正则表达式检查程序。好的,我有以下代码变量:
private static final String STRING_ARRAY_DATA_TYPE = "((String\\s*\\[\\s*\\]\\s*)"+STRING_VARIABLE+"|"+
"(String\\s+"+STRING_VARIABLE+"\\s*\\[\\s*\\]\\s*))";
private static final String STRING_VARIABLE = "[$|_|[a-zA-Z]][$|_|\\w]*";
private static final String STRING_ARRAY_VALUES = "((" + STRING_VALUE + ",\\s*)*" + STRING_VALUE + "\\s*)*";
private static final String ASSIGNMENT = "\\s*=\\s*";
private static final String END_OF_STATEMENT = "\\s*;+\\s*";
我有这个功能:
private static boolean checkStringArray(String text) {
return text.matches(STRING_ARRAY_DATA_TYPE + END_OF_STATEMENT) ||
text.matches(STRING_ARRAY_DATA_TYPE + "\\s+" + ASSIGNMENT +
"((new String\\[\\s*-?\\d+\\s*\\])|(new String\\[\\]\\{" + STRING_ARRAY_VALUES + "\\})|(\\{" + STRING_ARRAY_VALUES + "\\}))" + END_OF_STATEMENT);
}
所以我有两个问题:
如何让我的正则表达式不接受Java中的某些保留字,例如true
和false
?
我一直在寻找东西,但真的没有找到答案,为什么它不接受这个输入:String [ ] myString;
答案 0 :(得分:0)
要匹配特殊字符,请将其转义:
private static final String STRING_VARIABLE = "\\[$|_|[a-zA-Z]][$|_|\\w\\]*";