String.Format(IPAddressRangeFormat, StartIP, EndIP);
现在我需要读取的字符串回StartIP和EndIP对象的字符串。
在c#中最简单的方法是什么?
THanks, Li。
String.Format(IPAddressRangeFormat, StartIP, EndIP);
现在我需要读取的字符串回StartIP和EndIP对象的字符串。
在c#中最简单的方法是什么?
THanks, Li。
有没有简单的方法来做到这一点,因为String.Format的反向不是确定性的。
两个:
String.Format("{0}{1}", "123", "456")
String.Format("{0}{1}", "12", "3456")
给你123456
。该机器不会只是猜测你想要哪一个。
然而,有一个更棘手的方法来做到这一点,你有正则表达式。
如果您有:
String.Format ("{0}-{1}", StartIP, EndIP);
你可以使用一个表达式:
var matches = Regex.Match (String.Format ("{0}-{1}", "127.0.0.1", "192.168.0.1"), "(?<startIP>.*)-(?<endIP>.*)");
Console.WriteLine (matches.Groups["startIP"].Value); // 127.0.0.1
Console.WriteLine (matches.Groups["endIP"].Value); // 192.168.0.1
在这种情况下使用正则表达式有点过分复杂。为什么不'String.Split(' - ')'? – IAbstract
你可以为我给出的例子。但是,这只适用于一些有限的情况。对于反转格式字符串的一般情况,这正是正则表达式匹配的目的。不知道OP的具体情况,这是处理所有可能性的唯一方法。 –
另外,一旦你克服了对正则表达式的恐惧,它们并不那么复杂。或者说,你可以有简单的正则表达式,你可以有复杂的 - 取决于你想要做什么。恕我直言'(?
你想要做的事情叫做解析,它不能由String.Format方法执行。
可能是最好的方式有像IPRange
这样的单独类型,在这里你将有两个IP在构造函数中并且被覆盖ToString()
。钍解析你可能需要实现自定义逻辑,让我们说静态Parse(string)
成员。
无论如何,你将需要手动解析字符串 – Samich
根据您的IPAddressRangeFormat
的格式,使用ToString()...然后string.Split(':')
...用正在使用的任何char
替换':'。
我真的需要看到你的格式为IPAddressRangeFormat
以提供更好的答案。
能否请您包括更多的代码。有更多的上下文可以帮助人们理解你的问题。 –
你能否发布你的变量的内容 – Gambrinus
'IPAddressRangeFormat'的值是什么?这个问题没有通用的解决方案。 – Blorgbeard