我的正则表达式是
^((?:(?:^|\.)(?:\d|[1-9]\d|1\d{2}|2[-4]\d|25[0-5])){4})$
这允许0.0.0.0
,但我不想允许0.0.0.0
请有人帮助我
答案 0 :(得分:2)
答案 1 :(得分:2)
^(?=.*[1-9])((?:(?:^|\.)(?:\d|[1-9]\d|1\d{2}|2[-4]\d|25[0-5])){4})$
您可以通过positive lookahead.
查看演示。
答案 2 :(得分:0)
可以使用预测来设置长度限制。在这种情况下,它可以非常简洁,因为字符串应该只包含数字和.
符号。
因此,我建议使用(?![0.]+$)
,因为我们只需要检查我们是否没有0
和句号,直到最后:
^(
(?![0.]+$) # Here is the look-ahead.
(?:
(?:^|\.)
(?:
\d|[1-9][0-9]|1\d{2}|2[-4]\d|25[0-5]
)
){4}
)$
请参阅demo
^((?![0.]+$)(?:(?:^|\.)(?:\d|[1-9][0-9]|1\d{2}|2[-4]\d|25[0-5])){4})$
答案 3 :(得分:0)
这是作业的一部分吗?
如果没有,我将不使用正则表达式,而更喜欢String#scan:
guess