java使用正则表达式

这段Java代码首先定义了一个正则表达式,用于检查输入字符串formName是否符合特定格式。接下来,代码执行以下操作:
Pattern pattern = Pattern.compile("^1111(12|21)22[TF][0-9]{4}$");: 创建一个Pattern对象,该对象根据给定的正则表达式模式进行编译。这个模式要求字符串以1111开头,接着是12或21,然后是22,紧跟着一个T或F,最后是四位数字。


Matcher matcher = pattern.matcher(formName);: 使用pattern对象创建一个Matcher实例,它将尝试将platformName与正则表达式进行匹配。


if (matcher.matches()){ return false; }: 如果platformName完全匹配正则表达式,则返回false。这表明formName不符合期望的格式。


String a=matcher.group(1);: 如果matches()返回false,说明formName不完全匹配正则表达式。此时,尝试获取第一个捕获组的内容。由于(12|21)是正则表达式中的第一个捕获组,group(1)将返回"12"或"21",取决于formName中的这部分内容。
switch (a){...}: 使用switch语句根据a的值(即捕获组的内容)执行不同的逻辑:
case "12": return true;: 如果a等于"12",返回true。
case "21": return false;: 如果a等于"21",返回false。
default: throw new RuntimeException("参数错误");: 如果a既不是"12"也不是"21"(这不应该发生,因为group(1)应该只返回这两个值之一,除非正则表达式匹配失败),抛出一个运行时异常,表示参数错误。


整体来看,这段代码检查formName是否符合特定格式,如果符合则返回false;否则,根据捕获到的"12"或"21"来决定返回true还是false。如果捕获到的内容既不是"12"也不是"21",则抛出异常,表示输入无效。

 Pattern pattern = Pattern.compile("^1111(12|21)22[TF][0-9]{4}$");
        Matcher matcher = pattern.matcher(formName);
        if(matcher.matches()){
            return false;
        }
        String a=matcher.group(1);
        switch (a){
            case"12":
                return true;
                case "21":
                    return false;
            default:
                throw  new RuntimeException("参数错误");
            
        }

group(0)将返回整个匹配的字符串,包括1111、12或21、22、T/F以及四位数字。

group(1)将仅返回"12"或"21",

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值