查找带有连字符的 ID 格式的正则表达式



我正在尝试使用正则表达式验证id。ID 采用以下格式。

alphaNumeric-alphaNumeric-alphaNumeric(总长度应为 14,并且应有两个连字符(

以下示例是有效格式

AS12-AS12-AB1C

AS-12ASBC-1234

N-IKNKL-A2LI40

这里的问题是连字符不应该出现在开头和结尾。而且两个连字符也不应该在一起。

到目前为止,我正在使用积极的展望来做长度匹配(?=^.{14}$)。并使用(?=^[^-]*-[^-]*-[^-]*$)[a-zA-Z0-9-]+匹配其他连字符逻辑。所以我使用的正则表达式是

(?=^.{12}$)(?=^[^-]*-[^-]*-[^-]*$)[a-zA-Z0-9-]+

这里的问题是连字符可以在开头和结尾出现,以及两个连字符可以组合在一起,这两个连字符都不应该有效,并且违反了我的 ID 验证检查。

您可以使用此正则表达式:

^(?=.{14}$)[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+){2}$

正则表达式演示

正则表达式详细信息:

  • ^: 比赛开始
  • (?=.{14}$):前瞻条件,用于断言我们有确切的 14 个字符的输入
  • [a-zA-Z0-9]+:匹配 1 个或多个字母数字字符
  • (?::启动非捕获组
    • -:匹配连字符
    • [a-zA-Z0-9]+:后跟 1 个或多个字母数字字符
  • ){2}:结束非捕获组。匹配此组的 2 个实例
  • $: 比赛结束

最新更新