日期:2014-05-17  浏览次数:20666 次

java的正则用的人真恼火
之前一直是拿js来写正则的,一直都匹配的准准的,现在换到java端这边来写,老出毛病
js://没问题
var p = /\.htm$/;
alert(p.exec("index.htm")) 

java://写的又多,又匹配不到,真恼火,高人来指点下,js正则和java正则有哪点不同?
Pattern p = Pattern.compile("\\.htm$");
Matcher mat = p.matcher("index.htm");
boolean bl = mat.matches();

------解决方案--------------------
Pattern.compile(".+htm$");
------解决方案--------------------
楼上的可以匹配“index.12htm”,点表示任何字符
用这个
Java code

Pattern p = Pattern.compile("^\\w*\\.htm$");

------解决方案--------------------
在java中需要注意二次转意的问题:\\\\.htm$
------解决方案--------------------
但是.html前面的东西要表示出来呀,你这样写只能匹配.htm。.*?就是说前面是什么都行。