以下是引用vivien薄荷芯在2013-2-2 10:47:49的发言:
p=p.replaceAll(" +", " ");
String reg1="(\\d)()([a-zA-Z])";
String reg2="([a-zA-Z])()(\\d)";
p=p.replaceAll(reg1,"$1_$3");
p=p.replaceAll(reg2,"$1_$3");
中$怎么理解呢?
举个例子,我们有这么一个字符串:one cat one dog one pig in the yard
现在我们要求将cat 和 dog 前面的的one 替换成1
String str="one cat one dog one pig in the yard";
System.out.println(str.replaceAll("(one) (cat|dog)", "1 $2"));
输出:1 cat 1 dog one pig in the yard
$2代表第二个正则表达式所匹配的字符串,这个用到的地方不多,暂时我就发现String的replaceAll和java.util.regex.Matcher 能这样使用
其余的地方$只是一个普通的字符而已