当前位置: 首页 > 知识库问答 >
问题:

grep:Regex用于IP doesnt匹配

华坚成
2023-03-14

我试图创建一个与ip地址匹配的regex,或者一个带有网络掩码的ip地址:类似于8.8.8.8/24

if ! [[ $SOURCE =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] || [[ $SOURCE =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/[0-9]{1,2}$ ]];then
                echo ERROR: Invalid Source
                exit 1
fi

第一部分匹配得很好,第二部分与netmask匹配得很好…有人知道为什么吗?

共有1个答案

卫嘉谊
2023-03-14

在单独的变量中定义正则表达式,并使用单一模式:

SOURCE="8.8.8.8"
RX="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}(/[0-9]{1,2})?$"
if ! [[ $SOURCE =~ $RX ]];then
                echo ERROR: Invalid Source
                exit 1
fi

请看这里的在线演示。

模式解释:

  • ^-字符串开始
  • [0-9]{1,3}\.-1到3位数字后跟一个文字点
  • [0-9]{1,3}\.[0-9]{1,3}\.-同上,2次
  • [0-9]{1,3}-1到3位数字(这与IP字符串匹配)
  • (/[0-9]{1,2})?-可选(1或0次出现)序列,如下:
    • /-斜杠(因为它不是特殊字符,所以不需要转义)
    • [0-9]{1,2}-1到2位

 类似资料:
  • 我花了很多时间试图找出如何编写符合我需求的json路径,但没有成功。我希望有人能帮助我。 我有一个非常简单的JSON对象,看起来像:,请注意,这不是对象列表 我正在尝试查找一个JSON路径,该路径在编写代码时返回[%code%] 我找到了<代码>$[?( @.代码 遗憾的是,我正在做的项目使用了带有Goessner实现的jsonpath库。有人知道jsonpath可以用于任何实现吗? 谢谢

  • 我试图为我用JavaScript制作的密码验证程序开发一个regex表达式。 要求 null

  • 摘要:ZUUL没有为输入路径选择正确的目标url,因为它没有严格匹配输入路径。 以下是我的zuul路线: 对于输入路径:"/v1/顾客/卡片/产品/",它应该选择-http://localhost:8800/v1/customer/card/product但它选择http://localhost:8400/v1/composite.我的期望是路径模式匹配按照指定的顺序发生,并且更严格,但似乎不是这

  • Im使用java中的OpenCV,使用eclipse开发,图像以这种方式读取以进行模板匹配。 这很好,但我的图像不在本地计算机中。我应该比较mysql数据库中服务器上的2000个图像。把2000张图片保存到我的电脑上,然后读取它们是没有意义的。 所以我需要的是那个高鬼。imread(infle)读取图像:Highgui。imread(图像中的图像)或Highgui。imread(文件填充),我找不

  • 我在Twitter上注意到一个关于空手道Java API的有趣帖子:https://Twitter.com/ptrthomas/status/1344290316212342784 我没有一个推特账户无法回复--希望你不介意我在这里问。 我在一个工作项目中使用过空手道(与并行运行器、特性文件和所有),使用它是一种乐趣--一些工作场所的人对复杂的JSON断言印象深刻。我们正在为该项目实现一定程度的J

  • 我有一个类和一个注释 我想写一个 aspectj 切入点,它将捕获所有具有 value=true 的注释方法注释的方法。我该怎么做?