- Java code
System.out.println("111111".replaceAll("/*", "2"));// 运行结果:2121212121212
也就是说,正则为/*时,replaceAll会将替换字符串插入到目标字符串的每一个空隙里去。。。。
求大神解释!!!!
能分析下replaceAll的源码更好!
------解决方案--------------------------------------------------------
/* 无非表示匹配 0个或者多个/ 很显然没有/存在 所以匹配0个
匹配的结果就是
- Java code
Match 1: 0 0Match 2: 1 0Match 3: 2 0Match 4: 3 0Match 5: 4 0Match 6: 5 0Match 7: 6 0
------解决方案--------------------------------------------------------
字符串“111111”不包含“/”
但正则是“/*”,所以可以匹配到0个“/”,而字符串“111111”包含7个这样的位置,分别是开头、结尾、以及两个1中间的位置,这些位置最后用2来取代了。
正则换成/+结果就不一样了。