尝试了这个正则表达式但没有奏效:
^([a-zA-Z0-9])+([a-zA-Z0-9]-\){8}$
匹配的正则表达式:
112-4324
1d5g-5HU
ER9O5-11
但不匹配:
112-234213421 (more than 8 chars)
1244-53 (less than 8 chars)
-23432BB (hyphen at begining)
5tT569K- (hyphen in the end)
234-23-5 (two hyphens)
RTG--43T (two consecutive hyphens)
答案 0 :(得分:2)
您可以根据前瞻使用此正则表达式:
^(?=[a-zA-Z0-9-]{8}$)[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)$
(?=[a-zA-Z0-9-]{8}$)
是肯定的预测,以确保输入中有8个字符。[a-zA-Z0-9]+(-[a-zA-Z0-9]+)
将确保-
只在中间出现一次。