Java中repalceAll只替换第二个匹配到的字符串
来源:互联网 发布:网络点击率最高电视 编辑:程序博客网 时间:2024/06/05 20:41
Java中repalceAll只替换第二个匹配到的字符串
String replace replaceFirst repaceAll区别
- replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 - replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串 - replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
总结: replace 替换的是char,replaceAll、replaceFirst替换的可以是字符串,也可以是正则表达式;三者返回的都是一个新的字符串。
- replace(char oldChar, char newChar)
例题
需求:将字符串 time:[* TO *] 中第二个*替换为 test
实现代码
@Test public void replaceSecondStr() { String test = "time:[* TO *]"; String result1 = test.replaceAll("(\\*)(.*?)(\\1)(.*?)", "$1$2test$4"); System.out.println("原字符串:" + test); System.out.println("替换后:" + result1);}
输出:
原字符串:time:[* TO *]
替换后:time:[* TO test]
总结:正则中()表示提取匹配的字符串并分组;会分配存储空间,可以用$1取得匹配到的字符串
;\\1表示与第一个()中匹配的内容相同,也可以继续写(\\*);
(.*?)为勉强匹配方式,意思是匹配任何字符。
补充(取出匹配到的字符串)
@Testpublic void findGroup() { String test = "time:[* TO *]"; Matcher matcher = Pattern.compile("(\\*)(.*?)(\\1)(.*?)").matcher(test); if (matcher.find()) { System.out.println(matcher.group()); }}
阅读全文
1 0
- Java中repalceAll只替换第二个匹配到的字符串
- java正则匹配替换字符串中ip格式的字符串
- Java中repalceAll和split的转义问题
- js中替换所有匹配的字符串
- SQL Server 中替换字符串中第一个匹配的子串
- java中截取字符串第二个小数点之前的字符串
- OCIDefineByName函数中第二个参数只认大写字符串
- SQLServer替换第一个匹配的字符串方法
- Java中转义字符反斜杠 \ 的代替方法 | repalceAll 内涵解析
- java中字符串的替换
- java中字符串的替换
- 替换字符串中所有匹配的字符串 js
- 字符串匹配并替换Java
- java中,正则的匹配和替换
- PHP:只替换字符串中第一次出现的字符
- Java 字符串匹配和替换字符串
- java中的正则表达式 字符串的拆分,匹配,替换
- 正则式:找出字符串中第一个以”S“打头,到”E“结尾的子字符串,并替换成”ABC“。
- 《笨办法学python》加分习题30——我的答案
- 合并两个图片成一个图片的代码
- Android学习日志01 浅析单例
- CodeForces
- kaldi的timit例子运行到SGMM2 Training & Decoding部分突然中断
- Java中repalceAll只替换第二个匹配到的字符串
- ubuntu快捷键
- vector<bool>的学习
- PAT--1030. Travel Plan(最短路)
- 28、几何算法-线段相交、凸包、球面弧长
- S2B2C模式学习总结
- ORACLE 树形遍历查询根节点、父节点、子节点
- 文件上传框样式美化
- UVA