按顺序匹配卡号

  • 本文关键字:顺序 java regex
  • 更新时间 :
  • 英文 :


我正在尝试使用REGEX验证卡号。所有字符都必须是数字(0-9(,如果第一个数字是3,则数字的长度可以是15或16个字符,如果数字不是以3开头,则必须是16个字符。

有没有一种方法可以在纯regex中使用条件语句,而不是使用外部库?

类似于@withrp答案,但具有lookaheads

^(?=[3])([0-9]{15,16})|(?=[0-24-9])([0-9]{16})$

是的,您可以使用运算符|(OR(使regex具有条件

/(^3d{14,15}$)|(^[^3]d{16}$)/

是的,使用这样的正则表达式可以将|用作逻辑OR,并且可以简化初始条件:

String regex = "^(3\d{14}|\d{16})$";

其中:3\d{14}-检查第一个条件-以3开头,可以是15个字符长(包括前导3(

\d{16}-任意数字,严格为16个字符长的

在线演示

最新更新