主题:[原创][求助] replaceAll疑问
API中String类的replaceAll方法如下:
public String replaceAll(String regex, String replacement)
参数:
regex - 用来匹配此字符串的正则表达式
replacement - 用来替换每个匹配项的字符串
例子: System.out.println("a.b".replaceAll("\\.", "*")); //A a*b
System.out.println("a.b".replaceAll("\\.", "\\*")); //B a*b
问1:(我知道第一个参数是正则表达式)为何A句和B句的输出一样? replaceAll()的第二个参数replacement不是正则表达式,为何却使用了正则的写法,而且输出竟然不是\*而是* ?
问2: 如果说一个非正则表达式的字符串也支持正则表达式的写法那么以下这两句话的输出结果为何不一样。
System.out.println("*"); // *
System.out.println("\\*"); // \*
public String replaceAll(String regex, String replacement)
参数:
regex - 用来匹配此字符串的正则表达式
replacement - 用来替换每个匹配项的字符串
例子: System.out.println("a.b".replaceAll("\\.", "*")); //A a*b
System.out.println("a.b".replaceAll("\\.", "\\*")); //B a*b
问1:(我知道第一个参数是正则表达式)为何A句和B句的输出一样? replaceAll()的第二个参数replacement不是正则表达式,为何却使用了正则的写法,而且输出竟然不是\*而是* ?
问2: 如果说一个非正则表达式的字符串也支持正则表达式的写法那么以下这两句话的输出结果为何不一样。
System.out.println("*"); // *
System.out.println("\\*"); // \*