【发布时间】:2026-02-13 04:35:02
【问题描述】:
根据javadoc:
用给定的替换字符串替换与模式匹配的输入序列的每个子序列。
这似乎表明此调用不会替换,除非进行匹配。
然而:
public class MisMatch {
public static void main(String args[]){
Pattern doubleSlash = Pattern.compile("\\\\");
String stringWithSingleSlash = "maybe\\no";
System.out.println("Matches:"+doubleSlash.matcher(stringWithSingleSlash).matches());
String replace = doubleSlash.matcher(stringWithSingleSlash).replaceAll("ABC");
System.out.println(replace);
System.out.println("Equal:"+(stringWithSingleSlash.equals(replace)));
}
}
打印出来:
匹配:假
也许ABC没有
等于:假
- 所以它不匹配,但仍在替换。我在这里错过了什么?
【问题讨论】:
标签: java regex pattern-matching matcher