首页 > 编程语言 >java 正则踩坑

java 正则踩坑

时间:2023-02-15 18:23:56浏览次数:45  
标签:regex java matcher 正则 Matcher find

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() 比较

  1. matches 方法是字符完全满足正则;
  2. 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("正则没匹配上啊");
}

标签:regex,java,matcher,正则,Matcher,find
From: https://www.cnblogs.com/listjiang/p/17124215.html

相关文章

  • JAVA线上参数设置及常见问题
    常用配置参数jar包启动配置命令java-Xmx8g-Xms8g-XX:+UseG1GC-jar/home/pgcp/pgcp-0.0.1-SNAPSHOT.jartomcat启动配置参数在/bin/catalina.sh中/cygwin=false前......
  • java 之 UncaughtExceptionHandler异常处理机制
    1.java1.5版本出现的 UncaughtExceptionHandler当线程由于未捕获异常突然终止时调用的处理程序的接口。当一个线程由于未捕获异常即将终止时,Java虚拟机将使用thread......
  • 正则 表达式,或者匹配
    例子:letreg=/(?:}\s*(\S+)\s*#)|(?:\s+(\S+)\s+)|(?:\s+(\S+)\s*#)|(?:}\s*(\S+)\s+)/g;letkeyList=[]letmatch=value.match(reg)if(match){ke......
  • JavaWeb的前期准备
    一、概念1.什么是javaWebJavaWeb指的是,java语言编写的可以通过浏览器访问的程序,统称为JavaWeb,它基于请求和响应。2.什么是请求请求指的是客户端向服务器发送数据,叫请......
  • Java main方法所在类初始化顺序
    目录1、main方法特性2、与所在类的关系1、main方法特性访问权限是publicmain()是static静态,因此如果在main方法中调用本类的其他方法也必须是静态方法,否则需要先实例化......
  • java 按照自定义顺序枚举实体类的属性值
    工具类/***按照字段顺序进行拼接**@paramobj对象,需要在字段上添加FieldOrder注解*@paramfix拼接符号*@param<T>*@ret......
  • java selenuim 对canvas进行截图
    之前通过jsoup爬取一些静态的数据都可以 最近要爬一张动态渲染的地图   jsoup爬不出来 只能用selenuim 打开浏览器截图了 selenuim按照过程有点小坑......
  • java 代码优化
    代码优化的目标是:1.减小代码的体积2.提高代码运行的效率1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子......
  • 常用正则表达式
    非空/^.+$/正整数正则(不包括0)/^[1-9]\d*$/正整数正则(包括0)/^[+]{0,1}(\d+)$/正数的正则表达式(不包括0,小数保留两位)^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})......
  • Java入门
    一、了解Java1.JAVA三大版本Java2标准版(J2SE):桌面程序(控制台开发)Java2移动版(J2ME):嵌入入式开发(手机小家电)Java2企业版(J2EE):企业级开发(web端,服务......