1
我對正則表達式不太擅長,並且試圖用它們來格式化數字。C#正則表達式編號格式
原始數字將類似於05XX-123,並且我想追加零使其成爲05XX-000123(連字符後面的數字應該有零,直到其長度爲六)。如果我混正則表達式和字符串操作我可以用下面的解決方案。然而實現這一目標...
Regex regex = Regex(@"^([0-9]{2})([A-Za-z]{2})-([0-9]*)$");
Match match = regex.Match("05XX-123");
string result = match.Groups[1].Value + match.Groups[2].Value + "-" + match.Groups[3].Value.PadLeft(6, '0');
,我想避免第三行,因爲我想這些變化能夠在運行時進行定義。
這似乎應該是可能的,但我不太清楚如何在第三組(字母后面的數字)前加零。
Regex regex = Regex(@"^([0-9]{2})([A-Za-z]{2})-([0-9]*)$");
string result = regex.Replace("05XX-123", "$1$2-$3");
顯然上面的例子只是返回相同的值被提供,但好像我應該能夠做一些事情到$ 3組預先設置爲零,使$ 3'S長度六人。
任何幫助將不勝感激,謝謝!
這工作,但我想徹底避免字符串操作。原因是我希望在運行時定義轉換。 – majorpayne27 2011-04-28 03:41:13
@ majorpayne27:在運行時構造正則表達式並不比改變字符串函數的參數容易IMO – Dyppl 2011-04-28 03:46:40
使用字符串函數肯定會更容易,但它不是我可用的選項。我需要能夠在不重新編譯的情況下更改輸出格式。 – majorpayne27 2011-04-28 03:57:12