今天学习javascript String类的replace方法。发现了有全局替换
代码如下:
var s = "java-test05-JavA".replace(/java/gi,"123");
输出结果–>
s = "123-test05-123"; //g-全局替换 i-忽略大小写
我就在想Java String类的replace ,replaceFirst 和 replaceAll方法的区别
仔细查看资料发现以前理解的有些问题,记录一下:
总结:
replace,replaceFirst,replaceAll
String s1 = "abcabc".replace("abc","123");
String s2 = "abcabc".replaceFirst(".","0"); //"."为正则表达式
String s3 = "abcabc".replaceAll(".","0"); //"."也是正则表达式
输出结果:
s1 = "123123"; //可以看出来JAVA中 replace 的替代是默认全局的
s2 = "0bcabc"; //替换掉第一个匹配的正则表达式
s3 = "000000"; //替换所有匹配的正则表达式
同时发现如果replaceFirst和replaceAll也能不用正则表达式,用
String s4 = "abcabc".replaceFirst("\\a","0"); //用转义字符替代正则表达式也能达到同样的效果
输出:
s4 = "0bcabc";
贴下常用的正则表达式:
^匹配字符串的开始
$匹配字符串的结束
.匹配除换行符以外的任意字符
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
(第一次写博客,分享自己的一些想法)