Regular_Expression 數字匹配問題
關於數字的匹配
我想要指定檢索0~255.0~255.0~255.0~255 這樣的組合
就是說如果他的數字是以999.888.777.666出現的話就會忽略掉
但
================================================
regex = '(2[0-4][0-9]|25[0-5]|[1-9]\d|\d).(2[0-4][0-9]|25[0-5]|[1-9]\d|\d).(2[0-4][0-9]|25[0-5]|[1-9]\d|\d).(2[0-4][0-9]|25[0-5]|[1-9]\d|\d)'
test_string1 = "Test IP 216.58.200.227"
RegexMatchingTest(regex, test_string1) #測試表達式是否會匹配此合法IP
test_string2 = "Test IP 999.888.777.666"
RegexMatchingTest(regex, test_string2) #測試表達式是否會匹配此不合法IP
===============================================
結果:
Matched: 216.58.200.227
group(0): 216.58.200.227
group(1): 216
group(2): 58
group(3): 200
group(4): 227
Matched: 999.888
group(0): 999.888
group(1): 9
group(2): 9
group(3): 8
group(4): 8
================================================
我是用這樣的方法
2[0-4][0-9]|只找200~249以內的數字 或
25[0-5]|只找250~255以內的數字 或
[1-9]\d|只找10~99以內的數字 或
\d|只找0~9以內的數字
理應該匹配出指定的數值
但是他在匹配的過程中,比方說999
他會忽略第1個9,
然後判斷後面2個99時為符合[1-9]\d這樣
導致他在MATCH的過程中出現匹配成功
因為我想要他只搜尋到0~255之間的數值
但不知道應該怎麼去寫才對,希望各位老師、同學可以為我解答