日期:2014-05-20 浏览次数:20893 次
public static void main(String[] args) { String string = " 测 试 "; System.out.println(string.matches("(.|\\s)*?测 试(.|\\s)*?")); }
------解决方案--------------------
这个不是bug!
楼主应该从计算复杂度上思考这个问题。你知道匹配"*"的实际操作是不断的回溯吗?这个计算复杂度是很大的。
------解决方案--------------------
使用正则表达式的效率本身就比直接使用字符串方法的效率低,
像这个完全可以采用indexOf方法。
正则表达式主要完成一些较为复杂的模式匹配,就是采用基本
的字符串方法不易实现的匹配。比如像E-mail验证,若采用
字符串分析的话会是非常麻烦的,所以一般就采用正则表达式
来做。
想想可能大家对正则表达式的认识存在一定的误区了,当正则
表达式是无所不能的了。像我在这里曾经看到过用正则表达式
来匹配日期,这个也就算了,竟然还有要让正则表达式来匹配
麻将糊牌什么的。像匹配日期这种,日期的算法本身就是很复
杂,有闰年平年什么的,有得去写一个这样的正则表达式,还
不如直接采用字符串分析来得快一些。
------解决方案--------------------
参照
http://topic.csdn.net/u/20071214/17/ccc42222-6c64-4893-a191-d6f779d9067f.html