正则表达式 IP 通配符转换

Regex IP wildcard Conversion

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

10.(通配符).(通配符).248

谢谢!

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

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

简短而甜美:
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

Testing/developing 未来的正则表达式模式
那里有很多正则表达式测试器网站。我个人使用 RexexHero.net since I develop .Net applications, but there are other more generic options too such as regexpal.com.

您需要使用反斜杠对点元字符进行转义,但像这样的方法会起作用:

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

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