【发布时间】:2019-09-21 11:56:00
【问题描述】:
我正在尝试使用正则表达式验证 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 验证检查。
【问题讨论】:
-
您使用的是哪种语言的正则表达式引擎?
-
或者换句话说,你在输入中总是需要 2 个连字符吗?
-
需要两个连字符。 @anubhava
-
语言是 Kotlin @hjpotter92,但这有关系吗?我对正则表达式的了解很少。所以不确定正则表达式模式是否基于语言匹配。
-
@hjpotter92:你的正则表达式匹配
___-___-___
标签: regex