首先说一下我的目的:
当文本框输入 &#<>" 含有这五个字符的时候,不让通过;
我的表达式是这样写的:"^[^&#<>\"]*$"
问题是:
中文或英文状态下的#只能有一个可以。
求大神解惑。
"^[^&#<>\"]*$"
你这开头和结尾标书不对吧
楼上说的是对的,你的表达式的意思是,只能以 那几个 字符开头结尾,且中间没有其他字符,
我也没搞清楚,写了个测试,搞明白了。"^","$"分别表示以啥开头,以啥结尾,
我的测试代码贴出来,你看看,我表述的不太清楚,你看看代码应该好理解点,
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