我想出了这个正则表达式:
(?:[0-9]{4}-([0-9]{4}|[?]))+
对于这个文本:
1993-2000,2004-?
要在块上捕获的正则表达式 =[0-9]{4}-([0-9]{4}|[?])
我有如下变化:
1993-? 1993-2000 1993-2000,2004-? 1993-2000,2004-2010
等等。
我的正则表达式捕获块[1993-2000]
和[2004-?]
,但不是逗号。
我发现很难声明逗号应该在第二次、第三次等出现时是强制性的。
所以不应该允许的是:
1993-2000, 1993-20002007-? ?-2000
可能这可以被允许为0:1993-2000,2004,2007,2010-?
有人可以帮助我对第二次和后续事件的条件逗号进行最后的了解吗?
我发现了这个我改编了一下的正则表达式:
^([0-9]{4}(-([0-9]{4}|[?]))?)(,([0-9]{4}(-([0-9]{4}|[?]))?))*$
似乎可以解决问题,但这是最好的版本吗?