java 正则匹配 特殊字符 减号- 的情况,处理方式

本文介绍了一种在正则表达式中匹配含有特殊字符的字符串的方法,通过去除特殊字符来实现目标子串的准确匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

都知道,要想匹配字符串中间,一部分的正则式为:

String str = "qwert12345yuiop";

str.matches("\\w+12345\\w+"));
或者
String str1 = "12345";

str.matches("\\w+"+ str1 +"\\w+"));

都是OK的!

但是遇到字符串中间,穿插有特殊字符时,好久GG了,下面是我自己的一种解决方案,可供参考;

String str = "instance-00000200-61ff2872-6320-4f53-9b51-1e5e9e174198-tap5fe6d0a2-03";
             //检查str中间是否包含12345
             String str1 = "61ff2872-6320-4f53-9b51-1e5e9e174198" ;
             System.out.println(str.replace("-",""));
             System.out.println(str1.replace("-",""));
             System.out.println(str + ":" + str.replace("-","").matches("\\w+"+str1.replace("-","")+"\\w+")); //true
             System.out.println(str1.substring(0,8));
             System.out.println(str + ":" + str.matches("\\w+61ff2872-6320-4f53-9b51-1e5e9e174198\\w+")); //false


也算是一种取巧的方法,将中间的特殊字符,转换掉,正则表达式就能正常工作了,O(∩_∩)O~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值