Java中关于正则表达式的问题:

首先说一下我的目的:

当文本框输入 &#<>" 含有这五个字符的时候,不让通过;
我的表达式是这样写的:"^[^&#<>\"]*$"

问题是:
中文或英文状态下的#只能有一个可以。
求大神解惑。

"^[^&#<>\"]*$"

你这开头和结尾标书不对吧

楼上说的是对的,你的表达式的意思是,只能以 那几个 字符开头结尾,且中间没有其他字符,
我也没搞清楚,写了个测试,搞明白了。"^","$"分别表示以啥开头,以啥结尾,
我的测试代码贴出来,你看看,我表述的不太清楚,你看看代码应该好理解点,

 public class RegexTest {
    public static void main(String[] args) {
        Pattern p = Pattern.compile("[\\^&#<>\"]");
        Matcher matcher = p.matcher("^1&2#3<4>5\"6");
        String result = matcher.replaceAll("");
        System.out.println(result);

        p = Pattern.compile("^\\[.*\\]$");
        matcher = p.matcher("no [] ");
        System.out.println(matcher.find());
        matcher = p.matcher("[no]");
        System.out.println(matcher.find());
    }
}

代码的运行结果是:

123456
false
true