使用C#从IP地址中删除前导零

mad*_*ane 4 .net c# ip-address

我有一个像这样的"127.000.000.001"IP如何删除前导零以获得此"127.0.0.1"?现在我使用这样的正则表达式

Regex.Replace("127.000.000.001", "0*([0-9]+)", "${1}")
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在不使用正则表达式的情况下实现此结果?

我使用visual C#3.0获取此代码

小智 11

IP地址对象将前导零视为八进制,因此不应使用它来删除前导零,因为它不会处理192.168.090.009.

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/21510004-b719-410e-bbc5-a022c40a8369


Cod*_*ray 8

是的,这比使用正则表达式要好得多.

相反,尝试System.Net.IpAddress上课.

有一种ToString()方法将以标准符号返回人类可读的IP地址版本.这可能是你想要的.

  • 我关心布伦特的答案.我有IPAddress.Parse的问题.前导零解释为八进制.所以ToString将如何帮助,因为它首先需要一个IPAddress,并从你需要先解析的字符串中创建一个.不幸的是,这就是这个答案失败的地方. (4认同)