正则表达式IP通配符转换

时间:2015-01-07 16:47:04

标签: regex

我需要将以下内容转换为Regex。我需要第二个和第三个八位字节作为通配符。我对Regex很糟糕,因为我很少需要使用它。我在网上搜索了一个解决方案。有人可以帮忙吗?

10(通配符)。(通配符)0.248

谢谢!

3 个答案:

答案 0 :(得分:4)

简短而甜蜜:
10\.\d{1,3}\.\d{1,3}\.248会让你非常接近,而且相对简单。

  • 使用\.转义点以防止其匹配任何字符
  • 使用\d匹配任何数字字符
  • 使用{1,3}将连续数字的数量限制为1,2或3

更复杂,但更精确:
要仅匹配0到255之间的数字,您可以将\d{1,3}替换为([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])

10\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\.248

- 或 -

10(\.([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])){2}\.248

将来测试/开发正则表达式模式
那里有很多正则表达式测试网站。我个人使用RexexHero.net,因为我开发了.Net应用程序,但还有其他更通用的选项,例如regexpal.com

答案 1 :(得分:0)

10\.\d+\.\d+\.248

' \'匹配'。',' \ d'与任何数字匹配。 ' \ d +'匹配1位或更多位数。 其他角色与自己匹配。

答案 2 :(得分:0)

你需要用反斜杠来逃避点元字符,但是这样的东西会起作用:

10\.[0-9]{1,3}\.[0-9]{1,3}\.248

注意:此模式不是防弹的。它不检查IP地址是否有效,它只检查它是否与类似IP的模式匹配。例如,它将匹配10.999.999.248