3

我需要在我们的一些 Visual Studio 2010 解决方案中找到所有硬编码的 IP 地址。

如何使用 Visual Studio 2010 中的标准“查找”实用程序 (Ctrl+Shift+F) 执行此操作?

4

2 回答 2

10

不幸的是,Visual Studio 2010 的“在文件中查找”功能中的正则表达式搜索与 Perl5 不兼容。此正则表达式模式将匹配样式中指定的任何数字x.x.x.x(即 IPv4 样式地址):

[0-9]#\.[0-9]#\.[0-9]#\.[0-9]#

根据文档,看起来没有一种方法可以指定模式必须重复1 到 3 次,而这正是 IPv4 样式八位字节真正想要的,因此上述模式也将匹配版本号,如2.0.20505.0.

但是,您可以通过将八位字节中的位数显式指定为单独的组来将它们限制为 3,尽管它变得非常冗长:

([0-9]|([0-9][0-9])|([0-9][0-9][0-9]))\.([0-9]|([0-9][0-9])|([0-9][0-9][0-9]))\.([0-9]|([0-9][0-9])|([0-9][0-9][0-9]))\.([0-9]|([0-9][0-9])|([0-9][0-9][0-9]))

这仍将匹配版本的每个“部分”具有 3 个或更少数字的版本号,例如4.0.0.0,但它也将匹配 IPv4 地址,例如11.2.123.21.

编写 IPv6 地址的格式比 IPv4 更灵活,虽然可以将它们与 Visual Studio 2010 正则表达式匹配,但它会非常复杂。:-)

于 2013-05-21T15:31:59.573 回答
0

对于Visual Studio 2017,这个正则表达式对我来说很好用:((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)

于 2019-05-31T12:05:14.290 回答