簡體   English   中英

正則表達式將字符串拆分為相等長度的塊

[英]Regular expression to split string into equal length chunks

我有一個字符串,它將以以下格式傳遞給我的應用程序:

ece4241692a1c7434da51fc1399ea2fa155d4fc983084ea59d1455afc79fafed

我需要做的是為數據庫格式化它,因此其內容如下:

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

我認為最簡單的方法是使用正則表達式,但是我以前從未使用過它們,這是我第一次需要這樣做,老實說,我根本沒有時間閱讀此刻對他們的支持,所以如果有人可以幫助我,我將永遠感激不已。

嘗試

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

關於什么:

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

要么

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

使用小型靜態字符串解析方法來處理它可能會更好。 一個正則表達式可能會完成它,但是除非您分批處理一堆,否則您將無法節省足夠的系統資源來值得RegEx維護(如果您還不熟悉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() + ">";
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM