String s="大牛这孩";
Pattern pattern=Pattern.compile("[\u4e00-\u9fa5]");
Matcher matcher=pattern.matcher(s);
System.out.println(matcher.matches());
首先是因为那个正则表达式需要更多的转义:
[code="java"]"[\u4e00-\u9fa5]+"[/code]
因为Java的字符串要先对\做转义……
其次是因为matcher.matches()没用对。这个方法等同于自动在pattern的前后加上^和$,显然这个字符串超过了长度1,所以匹配失败了。用matcher.find()或者matcher.lookingAt()都可以。
[\u4e00-\u9fa5]
应该重复吧?
[\u4e00-\u9fa5]{1,}
RednaxelaFX 说的对