我需要一個正則表達式,其中包含:1-3個數字和可選的點。這就像IP模式。我希望我的正則表達式來允許:PHP的正則表達式 - 類似於IP模式?
192.168
192.168。
和不如下:
192.1688
這是我到目前爲止有:
preg_match('/^((\d{1,3})(\.?))+$/', $string);
但它仍然讓我有超過3個位數。任何建議如何修復正則表達式?
我需要一個正則表達式,其中包含:1-3個數字和可選的點。這就像IP模式。我希望我的正則表達式來允許:PHP的正則表達式 - 類似於IP模式?
192.168
192.168。
和不如下:
192.1688
這是我到目前爲止有:
preg_match('/^((\d{1,3})(\.?))+$/', $string);
但它仍然讓我有超過3個位數。任何建議如何修復正則表達式?
如果打算以匹配任何數目的1-3的點(這是可選的在端部)隔開的數字序列的,則可以使用
^\d{1,3}(?:\.\d{1,3})*\.?$
參見demo
如果需要的數字是在爲IP地址0
和255
之間的範圍內,使用
^(?:25[0-5]|2[0-4][0-9]|[01]?[1-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[1-9][0-9]?))*\.?$
見另一demo。
要限制到只有2組號碼,使用一個?
量詞與第二非捕獲組:
^(?:25[0-5]|2[0-4][0-9]|[01]?[1-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[1-9][0-9]?))?\.?$
^
['^([0-9] {1,3 } \。)*([0-9] {1,3} \。?)$'](https://regex101.com/r/kV7zW5/1) – Tushar
也許['^ \ d {1,3} (?:\。\ d {1,3})* \ $'](https://regex101.com/r/vC9yX0/1)。?應該支持多少個數字組?你需要的數字在IP和IP地址範圍之間的範圍是0到255嗎?試試['^(?: 25 [0-5] | 2 [0-4] [0-9] | [01]?[1-9] [0-9]?)(?:\。(?: 25 [0-5] | 2 [0-4] [0-9] | [01] [1-9] [0-9]))* \ $'](HTTPS:???// regex101。 com/r/vC9yX0/2)。 –
嘿@stribizhev,你認爲我的正則表達式應該/將會工作 – Tushar