我想知道如何为每行匹配一个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})$ /米
新结果(使用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 :(得分:1)
试试这个:
^(([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])$
答案 1 :(得分:1)
您可以将此正则表达式与m flag (multiline)
:
^([0-9]{1,3}\.){3}[0-9]{1,3}$
答案 2 :(得分:0)
你忘了逃避这个点。这也是你最后如何避免点。
^(([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])$