Java:regexp不包括空值
在这里的问题中,我得到了正则表达式,以匹配1到99之间的一个(或多个)数字组,以|分隔 或者,(两者都可以合并)。
我想更新它以做同样的事情,但现在接受0到99之间的数字。
这个修改版本做到了:
^(?:[0-9]|[1-9][0-9])?(?:[,|][1-9][0-9]?)*$
1
但现在接受空值(参见https://regex101.com/r/FfvavR/2 )
题
如何修改1下的regExp以排除空值?
目前还不清楚00
是有效还是无效的条目。 如果允许00
,则使用此正则表达式:
^[0-9]{1,2}(?:[,|][0-9]{1,2})*$
RegEx演示1
如果不允许00
那么使用这个位长的正则表达式:
^([0-9]|[1-9][0-9])(?:[,|](?:[0-9]|[1-9][0-9]?))*$
RegEx演示2
只需删除第一次出现的?:
。 它使组可选。 所以你有两个接受空字符串的可选组。
你也可以简化[0-9]|[1-9][0-9]
到[1-9]?[0-9]
( ?
表示第一个数字是可选的)
结果:
^([1-9]?[0-9])(?:[,|][1-9]?[0-9])*$