正则表达式将 Ipv4 与掩码匹配

Pat*_*tan 2 regex

我正在通过正则表达式验证 Ipv4 地址,但它不支持子网掩码。

^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我使用也支持掩码的正则表达式吗?

这是此正则表达式的一个工作示例:demo

Tot*_*oto 6

添加(?:/[0-2]\d|/3[0-2])?在正则表达式的末尾。您还可以简化正则表达式:

^([01]?\d\d?|2[0-4]\d|25[0-5])(?:\.(?:[01]?\d\d?|2[0-4]\d|25[0-5])){3}(?:/[0-2]\d|/3[0-2])?$
Run Code Online (Sandbox Code Playgroud)

  • 您的正则表达式中有一个错误,应该是: `^([01]?\d\d?|2[0-4]\d|25[0-5])(?:\.[01]? \d\d?|\.2[0-4]\d|\.25[0-5]){3}(?:/[0-2]\d|/3[0-2])? $`。有效的 IP“220.200.255.0/32”与我的正则表达式匹配,但与您的不匹配。 (2认同)