2010-01-20 206 views
5

我有這將在下面的格式傳遞給我的應用程序的字符串:正則表達式分割字符串成等長的塊

ece4241692a1c7434da51fc1399ea2fa155d4fc983084ea59d1455afc79fafed 

我需要做的是格式爲我的數據庫,所以它的內容如下:

<ece42416 92a1c743 4da51fc1 399ea2fa 155d4fc9 83084ea5 9d1455af c79fafed> 

我認爲這樣做最簡單的方法是使用正則表達式,但我從來沒有使用過他們,這是我所需要的第一時間,說實話,我根本現在沒有時間閱讀他們,所以如果有人能幫助我我會永遠感激。

回答

2

什麼:

string input ="ece4241692a1c7434da51fc1399ea2fa155d4fc983084ea59d1455afc79fafed"; 
string target = "<" + Regex.Replace(input, "(.{8})", "$1 ").Trim() + ">"; 

或者

string another = "<" + String.Join(" ", Regex.Split(input, "(.{8})")) + ">"; 
+0

大概......如果那樣就問題 2010-01-20 12:11:03

+0

他想走向另一個方向。 – 2010-01-20 12:11:42

+0

對不起,傢伙,固定 – 2010-01-20 12:16:50

2

嘗試

Regex.Replace(YOURTEXT, "(.{8})", "$1 "); 
2

你可能只是得到更好的服務具有小的靜態字符串解析方法來處理它。一個正則表達式可能會完成它,但除非你在一批中做了一堆,否則你不會在系統資源中存儲足夠的資源,因爲它值得維護RegEx(如果你不熟悉它們,我的意思是)。例如:

private string parseIt(string str) 
    { 
     if(str.Length % 8 != 0) throw new Exception("Bad string length"); 
     StringBuilder retVal = new StringBuilder(str) 
     for (int i = str.Length - 1; i >=0; i=i-8) 
     { 
      retVal.Insert(i, " ");  
     } 
     return "<" + retVal.ToString() + ">"; 
    } 
+0

+1不使用RE :-) – logout 2010-01-21 21:38:24

相關問題