我正在嘗試使用 ImmersiveLabs/LinkedInLearning 和其他基于 Web 的資源來學習 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.2[0-9].) 不應該只匹配字串172.20 .1.9 的前兩個八位位元組嗎?那為什么整個IP都匹配成功了呢?對我來說,質疑一些有效的東西似乎很奇怪。任何提示表示贊賞。
uj5u.com熱心網友回復:
您的正則運算式中沒有 $ ,因此您的正則運算式不會在行尾宣告位置,因此它基本上不關心 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://www.uj5u.com/shujuku/496166.html
標籤:正则表达式
上一篇:如何在Dartt中做到這一點$current_segment=~s/([a-zA-Z] )\.([a-zA-Z] )/$1punto$2/g;
