我正在维护一个程序,该程序使用TR1正则表达式来评估设备设置的用户输入。我刚刚将此程序的构建环境从visual studio 2008切换到visual studio 2010.它使用以下正则表达式来验证IP地址的形式:
^([0-9]{1,3})?(\.[0-9]{1,3}){0,3}$
以下是应该验证的示例输入:
192.168.11.197
出于某种原因,在VS2010下,此正则表达式不再验证格式正确的IP地址。我已经用以下代码替换了这个正则表达式解决了这个问题(我在Regular expression to match DNS hostname or IP Address?上找到了这个:
^(([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艺术的微妙之处,但我认为我有一个可以理解的解决方案。