[英]Regex - IP Address can be repeated with new line
我想知道如何匹配每行的一個IP地址?
我試過這個但是只用一個新行char來處理一個ip地址。
^((([0-9] {1,3})\\。?){4} \\ N 2)$
樣本數據:
35.24.74.12
22.54.12.23
測試網址: http : //regex101.com/r/yW9xT7
結果更新
新正則表達式:
/^(([0-9]{1,3}\\.?){4})$/m
新結果(使用php preg_match_all):
array(3) {
[0]=>
array(2) {
[0]=>
string(14) "123.234.123.21"
[1]=>
string(13) "232.123.21.42"
}
[1]=>
array(2) {
[0]=>
string(14) "123.234.123.21"
[1]=>
string(13) "232.123.21.42"
}
[2]=>
array(2) {
[0]=>
string(2) "21"
[1]=>
string(2) "42"
}
}
新問題:
有三場比賽。 我只想要第一個結果。
試試這個:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
您可以將此正則表達式與m flag (multiline)
:
^([0-9]{1,3}\.){3}[0-9]{1,3}$
你忘了逃避這個點。 這里也是你如何避免最后的點。
^(([0-9]{1,3}\.){4}[0-9]{1,3})$
更合適的正則表達式只接受0到255之間的數字,如下所示:
[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]
這使:
^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$
為了匹配多行,您可以重復上述操作,並在每次重復之間包含新行,如下所示:
^((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[\r\n]+)*(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.