我正在维护一个程序,它使用 TR1 正则表达式来评估设备设置的用户输入。我刚刚将该程序的构建环境从 Visual Studio 2008 切换到 Visual Studio 2010。它使用以下正则表达式来验证 IP 地址的形式:
^([0-9]{1,3})?(\.[0-9]{1,3}){0,3}$
以下是应验证的示例输入:
192.168.11.197
出于某种原因,在 VS2010 下,此正则表达式不再验证格式正确的 IP 地址。我已经通过用以下替换这个正则表达式解决了这个问题(我在正则表达式上找到了这个来匹配 DNS 主机名或 IP 地址?:
^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$
我的问题是为什么以前的正则表达式不再起作用?我承认我不是正则表达式 ASCII 艺术的精通大师,但我认为我有一个可以理解的解决方案。