判断一个句子是否跟“...在...中...”相匹配,
String strSen="这在班级中得到了实际应用。";
bReturn = strSen.matches("[\u4e00-\u9fa5a-zA-Z]*在*中*应用[\u4e00-\u9fa5|.]*");
这样就可以,可是换成bReturn = strSen.matches("*在*中*应用*");就不行,提示错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0望大家指教

解决方案 »

  1.   

    bReturn = strSen.matches("*在*中*应用*");
    第一个*前需要字符,可
    修改为
    bReturn = strSen.matches("在*中*应用*");

    bReturn = strSen.matches("[\u4e00-\u9fa5a-zA-Z]*在*中*应用*");
      

  2.   

    搂住估计把正则中的*号与Windows中的通配符*混淆了
    Java正则中的*代表它前面匹配的元素出现的频率,而windows中*号代表可以匹配任何字符
    关于Java正则可以在Java API 文档中找到详细信息