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