在问题here中,我得到了正则表达式来匹配1到99之间的一组(或更多)数字,并用|隔开。或,(可以组合使用)。
我想对其进行更新以执行相同的操作,但是现在接受0到99之间的数字。
此修改版本可以做到:
^(?:[0-9]|[1-9][0-9])?(?:[,|][1-9][0-9]?)*$
1
但是现在接受空值(请参见https://regex101.com/r/FfvavR/2)
问题
如何修改1下的regExp以排除空值?
答案 0 :(得分:1)
只需删除第一次出现的?:
。它使组可选。因此,您有两个可选的组,它们接受空字符串。
您还可以将[0-9]|[1-9][0-9]
简化为[1-9]?[0-9]
(?
表示第一位数字是可选的)
结果:
^([1-9]?[0-9])(?:[,|][1-9]?[0-9])*$
答案 1 :(得分:1)
目前尚不清楚00
是有效还是无效的条目。如果允许00
,请使用此正则表达式:
^[0-9]{1,2}(?:[,|][0-9]{1,2})*$
如果不允许使用00
,请使用有点长的正则表达式:
^([0-9]|[1-9][0-9])(?:[,|](?:[0-9]|[1-9][0-9]?))*$