^10\.\d+\.\d+\.\d+$/g
所以我正在尝试创建一个命中所有10.x.x.x地址的RegEx。 (所以10.0.0.0/8)
我想出了上面的内容。当我在RegEx测试网站上测试它时(我已尝试了一些),我得不到匹配。
据我所知:
它匹配10.x,然后添加前一个并查找x。,然后是前一个,然后是x。,直到它达到完整的10.x.x.x.但它似乎没有用。
我确信\ d会击中任何数字。
我不知道为什么这会失败,因为它对我来说似乎是正确的。
RegEx测试可能是错误的,还是我错过了什么?
答案 0 :(得分:3)
^10\.\d+\.\d+\.\d+$
模式匹配字符串开头的10
,然后是一个点,后跟1+任意数字(x 3次),然后是字符串的结尾。这意味着,此正则表达式可以匹配10.100000.234567.345567
。
匹配10.xx.xx.xx
IPv4地址的正则表达式可以写为
/^10(?:\.(?:2[0-4]\d|25[0-5]|[01]?\d\d?)){3}$/
请参阅regex demo。这是来自Ultrapico Expresso的精简IP地址。
<强>详情:
^
- 字符串开头10
- 文字10
(?:\.(?:2[0-4]\d|25[0-5]|[01]?\d\d?)){3}
- 3个序列({3}
):
\.
- 一个文字点(?:2[0-4]\d|25[0-5]|[01]?\d\d?)
- 3种替代品:
2[0-4]\d
- 2
后跟一个来自0-4
范围的数字和一个数字(200-249
)25[0-5]
- 25
后跟0-5
范围内的数字(250-255
)[01]?\d\d?
- 0
或1
(可选由于?
)后跟任意1位数和可选的一位数(0-199
)$
- 字符串结尾答案 1 :(得分:0)
我宁愿使用这个正则表达式来验证ip地址
10. \ d {1,3}。\ d {1,3}。\ d {1,3}
答案 2 :(得分:0)
如果您要匹配的地址类似于此10.123.123.123/1
试试这个
10\.\d{1,3}\.\d{1,3}\.\d{1,3}
如果你的地址应占据整条线路并且在线路上没有其他空间,那么:
^10\.\d{1,3}\.\d{1,3}\.\d{1,3}$
如果你想限制它,那么这将匹配每个值超过255的地址,它会变得更复杂。
答案 3 :(得分:0)
大部分答案都没有解释为什么正则表达式不为OP工作。
根据this,将用于IP地址,但它不是特定的IP地址格式。
我添加了
m modifier
,以便断言(^
和$
)匹配每行的开头和结尾(用于测试多个IP地址)。
如果您正在寻找特定的IP地址格式,那么Wiktor Stribiżew
的回答是正确的。