1. String.replaceAll(String regex, String replacement) 方法问题
默认替换会把regex字符串当作一个正则表达式解析,这样的话如果想直接替换就不能出现正则语义。否则会出错
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 18
"abc+++cba" .replaceAll("+++" ,"sss" )
"abc+++cba" .replaceAll("\\+\\+\\+" ,"sss" );
org.apache.commons.lang3.StringUtils.replace("abc+++cba" ,"+++" ,"sss" );
java.util.regex.Matcher#find() 与 java.util.regex.Matcher#matches() 比较
matches 方法是字符完全满足正则;
find 方法是字符串存在一个或多个字串满足正则,调用了find后会移动定位,假设只有一个字串满足的话,再此调用会放回 false,所以又是需要同 java.util.regex.Matcher#reset()
组合使用;
Pattern pattern = Pattern.compile("正则字符串" );
Matcher matcher = pattern.matcher("待匹配字符串" );
System.out.println(matcher.matches());
if (matcher.find()) {
matcher.reset();
while (matcher.find()) {
System.out.println(matcher.group(1 ));
}
}else {
System.out.println("正则没匹配上啊" );
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律