【问题标题】:The RegEx pattern for matching the entire specific sets of IP address class?用于匹配整个特定 IP 地址类集的 RegEx 模式?
【发布时间】:2020-10-28 19:39:46
【问题描述】:

下面的 RegEx 仅突出显示特定的私有 IP 寻址方案:

(?!^0\.)(?!^10\.)(?!^100\.6[4-9]\.)(?!^100\.[7-9]\d\.)(?!^100\.1[0-1]\d\.)(?!^100\.12[0-7]\.)(?!^127\.)(?!^169\.254\.)(?!^172\.1[6-9]\.)(?!^172\.2[0-9]\.)(?!^172\.3[0-1]\.)(?!^192\.0\.0\.)(?!^192\.0\.2\.)(?!^192\.88\.99\.)(?!^192\.168\.)(?!^198\.1[8-9]\.)(?!^198\.51\.100\.)(?!^203.0\.113\.)(?!^22[4-9]\.)(?!^23[0-9]\.)(?!^24[0-9]\.)(?!^25[0-5]\.)(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))

就像在这个例子中https://regex101.com/r/tKKYx0/3 我需要更新代码以只匹配顶部的公共 IP 地址列表。

【问题讨论】:

  • 这些地址与其他地址有何不同?请描述一个实际上可以用正则表达式“编码”的规则。

标签: regex regex-negation


【解决方案1】:

您可以尝试的正则表达式是:

^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?=,)

测试here

注意:我并不真正了解第一个 IP 与其他 IP 有何不同。我的正则表达式在行首查找 IP,后跟逗号。

注意 2:我的正则表达式并没有真正验证 IP。例如。 568.914.348.759会成功返回。


对于新示例,请尝试:

^(|(\S+.*?))(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})

测试here

【讨论】:

  • 感谢您的更新。是否可以匹配新更新的 RegEx 示例? regex101.com/r/tKKYx0/3
  • 正如我已经提到的,请解释IP之间的区别-应该匹配的IP和不应该匹配的IP。
猜你喜欢
  • 1970-01-01
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 2012-06-26
  • 2012-05-17
  • 2012-10-15
  • 1970-01-01
相关资源
最近更新 更多