首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于replaceAll,正则为/*轮换结果竟然是.

2012-07-30 
关于replaceAll,正则为/*,替换结果竟然是...Java codeSystem.out.println(111111.replaceAll(/*, 2)

关于replaceAll,正则为/*,替换结果竟然是...

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来取代了。
正则换成/+结果就不一样了。

热点排行