1
System.out.println(
"ISODate(\"333\")ISODate(\"333\")ISODate(\"333\")"
.replaceAll("ISODate\\(\".+\"\\)",
"ISODate(\"222\")"));
ISODate("222")
如何更換所有的日期?
System.out.println(
"ISODate(\"333\")ISODate(\"333\")ISODate(\"333\")"
.replaceAll("ISODate\\(\".+\"\\)",
"ISODate(\"222\")"));
ISODate("222")
如何更換所有的日期?
".+"
是貪婪的,匹配雙引號和匹配下一個雙引號前的最長匹配。
可以使用非貪婪匹配:
System.out.println(
"ISODate(\"333\")ISODate(\"333\")ISODate(\"333\")"
.replaceAll("ISODate\\(\".+?\"\\)",
"ISODate(\"222\")"));
或者性能更好的否定字符類:
System.out.println(
"ISODate(\"333\")ISODate(\"333\")ISODate(\"333\")"
.replaceAll("ISODate\\(\"[^\"]+\"\\)",
"ISODate(\"222\")"));