2010-01-20 27 views
5

Tôi có một chuỗi đó sẽ được gửi đến ứng dụng của tôi trong các định dạng sau:biểu hiện thường xuyên đến chuỗi chia thành khối chiều dài bằng nhau

ece4241692a1c7434da51fc1399ea2fa155d4fc983084ea59d1455afc79fafed 

gì tôi cần phải làm định dạng nó cho cơ sở dữ liệu của tôi là để nó đọc như sau:

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

tôi giả sử là cách dễ nhất để làm điều này sẽ được sử dụng biểu thức thông thường, nhưng tôi chưa bao giờ sử dụng chúng trước đó, và đây là lần đầu tiên tôi đã từng cần đến, và phải trung thực, tôi chỉ đơn giản không có thời gian để đọc trên chúng vào lúc này, vì vậy nếu có ai có thể giúp tôi với điều này Toi se mai mai biet on.

Trả lời

2

gì về:

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

Hoặc

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

có thể ... nếu đó là câu hỏi

+0

Anh ấy muốn đi theo một hướng khác. –

+0

xin lỗi các bạn, đã sửa –

2

Hãy thử

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

Bạn chỉ có thể phục vụ tốt hơn có một phương pháp phân tích chuỗi nhỏ tĩnh để xử lý nó. Một biểu thức chính quy có thể làm cho nó được thực hiện, nhưng trừ khi bạn đang thực hiện một loạt trong một loạt, bạn sẽ không tiết kiệm đủ tài nguyên hệ thống để có giá trị duy trì một RegEx (nếu bạn chưa quen với chúng). Một cái gì đó như:

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 vì không sử dụng RE :-) – logout

Các vấn đề liên quan