当前位置: 首页 > news >正文

字符串和正则表达式踩坑

    // 中石化加油卡号格式:以 100011 开头共19位public static final String ZHONGSHIYOU_OIL_CARD_PATTERN = "^100011\\d{13}$";// 中石油加油卡号格式:以90、95、70开头共16位public static final String ZHONGYOU_OIL_CARD_PATTERN = "^(90|95|70)\\d{14}$";public static boolean checkOilCardNumber(String cardNumber) {// 使用正则表达式检查加油卡号是否符合规定return OrderProductConst.ZHONGSHIYOU_OIL_CARD_PATTERN.equals(cardNumber) || OrderProductConst.ZHONGYOU_OIL_CARD_PATTERN.equals(cardNumber);}public static void main(String[] args) {System.out.println(checkOilCardNumber("9501234567890123"));}

上面代码输出 false

将 equals 改成 matchers 也是false

    // 中石化加油卡号格式:以 100011 开头共19位public static final String ZHONGSHIYOU_OIL_CARD_PATTERN = "^100011\\d{13}$";// 中石油加油卡号格式:以90、95、70开头共16位public static final String ZHONGYOU_OIL_CARD_PATTERN = "^(90|95|70)\\d{14}$";public static boolean checkOilCardNumber(String cardNumber) {// 使用正则表达式检查加油卡号是否符合规定return OrderProductConst.ZHONGSHIYOU_OIL_CARD_PATTERN.matcher(cardNumber) || OrderProductConst.ZHONGYOU_OIL_CARD_PATTERN.matcher(cardNumber);}public static void main(String[] args) {System.out.println(checkOilCardNumber("9501234567890123"));}

将matchers 两个参数换了位置 就输出 true

  public static boolean checkOilCardNumber(String cardNumber) {// 使用正则表达式检查加油卡号是否符合规定return cardNumber.matches(OrderProductConst.ZHONGSHIYOU_OIL_CARD_PATTERN)|| cardNumber.matches(OrderProductConst.ZHONGYOU_OIL_CARD_PATTERN);}public static void main(String[] args) {System.out.println(checkOilCardNumber("9501234567890123"));}

查看源码:

matchers 方法需要将字符串应该是调用方

http://www.lryc.cn/news/394086.html

相关文章:

  • LLM4Decompile——专门用于反编译的大规模语言模型
  • 关于Web开发的详细介绍
  • G1 垃圾收集器
  • Linux Ubuntu 20.04.06 安装Onboard虚拟键盘教程
  • 简介空间复杂度
  • windows server2016搭建AD域服务器
  • android deep links即scheme uri跳转以及googlePlay跳转配置
  • QT5.14.2与Mysql8.0.16配置笔记
  • 判断是否为完全二叉树
  • 【笔记】记一次redis将从节点变成主节点 主节点变成从节点
  • 解析Java中1000个常用类:DoubleSummaryStatistics类,你学会了吗?
  • WAIC热点聚焦|新质生产力与低空经济
  • Docker部署ETCD 3.5.14(保姆级图文教程)
  • 2024年7月6日 (周六) 叶子游戏新闻
  • python爬虫入门(二)之Requests库
  • Git 操作补充:cherry-pick、变基
  • 在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?
  • 秋招提前批面试经验分享(下)
  • 零基础STM32单片机编程入门(七)定时器PWM波输出实战含源码视频
  • 【ubuntu自启shell脚本】——在ubuntu中如何使用系统自带的启动应用程序设置开机自启自己的本地shell脚本
  • nodejs配置国内镜像
  • 【JavaEE】多线程进阶
  • 大模型LLM面试常见算法题-包括Attention和Transformer常见面试题
  • 90元搭建渗透/攻防利器盒子!【硬件篇】
  • 用vue2+elementUI封装手机端选择器picker组件,支持单选、多选、远程搜索多选
  • 『古籍自有答案』古风H5案例赏析
  • Laravel模型事件完全指南:触发应用程序的动态行为
  • hot100 |八、二叉树
  • Matlab协方差矩阵分解法生成随机场
  • android 在清单文件中配置receiver,系统是何时会注册此广播接收者的?