判断一个句子是否跟“...在...中...”相匹配,
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 文档中找到详细信息
------解决方案--------------------
".*在.*中.* "