日期:2014-05-20  浏览次数:20573 次

如何用正则表达式RE匹配...在...中...
判断一个句子是否跟“...在...中...”相匹配,
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

望大家指教

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

bReturn = strSen.matches( "[\u4e00-\u9fa5a-zA-Z]*在*中*应用* ");
------解决方案--------------------
strSen.matches( ".*在.*中.* ")
------解决方案--------------------
搂住估计把正则中的*号与Windows中的通配符*混淆了
Java正则中的*代表它前面匹配的元素出现的频率,而windows中*号代表可以匹配任何字符
关于Java正则可以在Java API 文档中找到详细信息
------解决方案--------------------
".*在.*中.* "