rust Regex for IPv6 Cidr

dauxcl2d  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(141)

我试图找到正确的正则表达式来匹配Rust中的IPv6 Cidr字符串。
示例文本:它可以是的最大字符数:fe06:4567:ed56:ed56:ed56:ed56:ed56::/128最小值:f::/16
冒号之间的字符可以是a-f和0-9。冒号之间最多可以有4个字符,最少可以有1个。最多可以有6个冒号,最少可以有1个冒号。双冒号和结尾的/是必要的。斜线后面的数字在16-128之间
如果你能帮忙的话,我将不胜感激。在Rust中不一定是正则表达式。任何语言的正则表达式都有帮助
尝试了不同的正则表达式组合,但甚至没有接近。我对正则表达式很反感。

6yoyoihd

6yoyoihd1#

下面的代码应该可以在 Rust 中运行。
我将提供创建模式所采取的步骤。
作为参考,这里是关于 regexWikipedia 文章。

  1. [a-f\d]
  • "...冒号之间最多可以有4个字符,最少可以有1个。..."*
  1. [a-f\d]{1,4}
  • "...最多可以有6个冒号,最少可以有1个。..."*
  1. [a-f\d]{1,4}(?::[a-f\d]{1,4}){0,5}
  • "...双冒号和结尾的/是必要的。..."*
  1. [a-f\d]{1,4}(?::[a-f\d]{1,4}){0,6}::/
  • "..
  1. [a-f\d]{1,4}(?::[a-f\d]{1,4}){0,6}::/(?:1[6-9]|[2-9]\d|1[0-1]\d|12[0-8])
展开查看全部

相关问题