簡體   English   中英

正則表達式 - 可以使用新行重復IP地址

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM