【发布时间】:2018-08-13 10:19:36
【问题描述】:
我想验证以逗号分隔的值列表,最后一个值后面没有逗号:
应该是有效的:
altdns1.at、altdns2.de.fr、altdns3.de
应该是无效的:
altdns1.at、altdns2.de.fr、altdns3.de、
我的正则表达式:
^([^,]+,)*([^,]*)$
我的想法:
-
([^,]+,)字符串开头:除逗号外的任何字符 - 一次到无限次 - 后跟一个逗号 -
*这一切从零到无限次 -
([^,]*)字符串结尾:除逗号外的任何字符 - 一次到无限次
Regex101 显示此字符串与我的模式匹配:
altdns1.de.de,altdns2.de.de,altdns3.de.de,
为什么?
【问题讨论】:
-
你的最后一个量词是
*,而不是+;end of string: any character except comma - one to unlimited times是假的,实际上是零到无限次
标签: regex validation