注意:Java的字符串要先对\做转义……
其次是因为matcher.matches()没用对。这个方法等同于自动在pattern的前后加上^和$,显然这个字符串超过了长度1,所以匹配失败了。用matcher.find()或者matcher.lookingAt()都可以。
例
代码如下 | 复制代码 |
public static boolean isContainChinese(String str) { Pattern p=Pattern.compile("[u4e00-u9fa5]"); Matcher m=p.matcher(str); if(m.find()) { return true; } return false; } |
例2
代码如下 | 复制代码 |
package wenhq.com.cn; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { static String regEx = "[u4e00-u9fa5]"; static Pattern pat = Pattern.compile(regEx); public static void main(String[] args) { String input = "亲亲宝宝-http://www.111cn.net"; System.out.println(isContainsChinese(input)); input = "http://www.111cn.net"; System.out.println(isContainsChinese(input)); } public static boolean isContainsChinese(String str) { Matcher matcher = pat.matcher(str); boolean flg = false; if (matcher.find()) { flg = true; } return flg; } } |
时间: 2024-08-28 21:51:17