我正在尝试使用ImmersiveLabs/LinkedInLearning和其他基于网络的资源来学习RegEx,一切都进行得很顺利。有一个小问题,我不知道如何在谷歌上找到答案。场景,Azure ATP查询,其中我想匹配私有寻址方案
| where From_IP matches regex @'(^127\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^192\.168\.)'
效果很好!和我想要的相符。问题是-为什么?!例如(~172.20~9.)难道不应该只在字符串172.20.1.9的前两个八进制上匹配吗?为什么整个IP会成功匹配呢?对我来说质疑一些有用的东西似乎很奇怪。任何小贴士都会很感激。
发布于 2022-06-25 09:30:13
在你的正则表达式中没有$,所以你的正则表达式不会在一行末尾声明位置,所以它基本上不在乎172.20之后会出现什么。,请参阅更多信息: regex101.com/r/TgjdVz/1
此外,为了匹配所有私有IPv4子网,可以使用以下正则表达式。
^(10(\.(25[0-5]|2[0-4][0-9]|1[0-9]{1,2}|[0-9]{1,2})){3}|((172\.(1[6-9]|2[0-9]|3[01]))|192\.168)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{1,2}|[0-9]{1,2})){2})$
https://stackoverflow.com/questions/72752121
复制相似问题