Java实现通过正则表达式判断一个字符串是否含有指定字符

场景

1、校验一个字符串是否包含有指定字符。
这个很简单,就单纯的用indexOf或者Contains方法实现就可以了

2、校验一个字符串是否包含的特殊字符。
特殊字符虽有多个但也只有几个,双重for循环套用indexOf或者Contains方法也可以解决。

3、上述的两个场景都可以简单的用String的api实现,但也可能存在一些复杂的业务场景,如,校验一个字符串是否包含指定的组合字符串,特殊字符,指定的单个字符等等,如此一来要核对的字串就多了,双重for循环就显得冗余和效率低。本文介绍的正则表达式便是处理这种场景的实现,如标题,这里只介绍正则表达式的实现,因为正则表达式相对于String的api实现,效率上是高一些的,至于其他实现方式这里不做介绍。
对正则表达式不熟悉的朋友可以参考这篇博文:正则表达式详解

示例

场景:校验一个字符串是否含有指定的字符,包含返回true,反之false

分析:看这句话,正面思考,我们很难用java的正则表达式实现。咱们可以换个思维实现,校验一个不含指定的字符的字符串,满足返回true,反之false。这样实现起来就轻松了。(Java实现通过正则表达式判断一个字符串是否含有指定字符,百度搜索,怎么也搜不到合适的实现方法)

实现:

    public static void main(String[] args) {
        String inpValue = "1111a11111";
        String regex = "[^a]+";//意思是:匹配不含字符a的其他任意一个或多个字符

        if (inpValue.matches(regex)){
        	System.out.println("匹配成功");
        }else {
            System.out.println("不能字符a");
        }
    }
    public static void main(String[] args) {
        String inpValue = "11'111\\1";
        String regex = "[^'\n\r\t\b\f \\\\]+";//意思是:匹配不含这些特殊字符的其他任意一个或多个字符

        if (inpValue.matches(regex)){
            System.out.println("匹配成功");

        }else {
            System.out.println("不能含特殊字符");
        }
    }

通用的场景有很多,这里就不一一列举了,大家可以根据自己的业务需求套用即可。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值