// 中石化加油卡号格式:以 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 方法需要将字符串应该是调用方