制作[< -SPACE-> ]接受并且不接受正则表达式java中的保留字

时间:2017-01-04 12:23:10

标签: java regex

我试图制作有效变量声明的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);
}

所以我有两个问题:

  1. 如何让我的正则表达式不接受Java中的某些保留字,例如truefalse

  2. 我一直在寻找东西,但真的没有找到答案,为什么它不接受这个输入:String [ ] myString;

1 个答案:

答案 0 :(得分:0)

要匹配特殊字符,请将其转义:

private static final String STRING_VARIABLE = "\\[$|_|[a-zA-Z]][$|_|\\w\\]*";