正则表达式是一个非常强大的工具。可以完成许多我们需要很多代码量的工作。
我自己对于正则表达式没有系统的认真学过,平时总是用的时候再临时查(ps主要是因为本人太懒!)。所以很多知识都很模糊。
今天在写java程序时用正则表达式来去除重复的内容。举个例子:
public static void main(String [] args){
Pattern pat = Pattern.compile("(\\w+),\\1");
String test = "咱们结婚吧,咱们结婚吧";
Matcher m = pat.matcher(test);
if(m.find()){
System.out.println("match");
System.out.println(m.group(1));
}
else System.out.println("no match");
}
结果总是 no match。
后来在网上查了一下才知道,原来是各个平台对正则表示元字符的解释不同。在java中,\w不能匹配汉字,需要用\W来匹配汉字。这与原始的正则表达式不同。
经过修改后,表达式可以正确匹配了。