我有大約10個從記錄的數據,我希望能夠以定義返回這個數據的字符串的佈局,留下一些作品出來的選項。我的想法是使用枚舉給我的令牌/字段整數值,然後有一個像{0}{1}{2}{3}
或{4} - {3}{1} [{8}]
複雜的東西。令牌的含義與我數據庫中的字段有關。舉例來說,我的這個枚舉與我的代幣有關。解析自定義數據令牌和C#與值替換
AccountMask = 0,
AccountLast4 = 1,
AccountFirstDigit = 2,
AccountFirstLetter = 3,
ItemNumber = 4,
Amount = 5
帳戶面具就像VXXXXX1234一個字符串,其中V是簽證,而1234是該卡的最後4位數字。有時客戶需要V,有時他們需要第一個數字(很容易將卡類型轉換爲第一個數字)。
我的目標是創造一些可重複使用,以產生一個格式字符串,然後將使用與數字相關的數據令牌裏面做的到位替代數據的使用令牌的字符串。
所以,對於使用上面我列舉的面具,如果我想定義的格式9{2}{1}{4:[0:0000000000]}
如果項目編號爲678934
那麼這將轉化爲9412340000678934一個例子,其中令牌的內部4成爲該值的String.Format
的定義。此外,置於令牌周圍的數據將被忽略並保留。
我的問題來處理字符串和最佳做法。有人告訴我說,如果您要即時創建它們,正則表達式可能會很昂貴。作爲CS專業,我有一種感覺,「正確」(無論複雜)解決方案是爲我的令牌製作詞法分析器。我沒有經驗在C#中編寫詞法分析器/解析器,因此我不確定最佳實踐。我正在尋找一個高效且易於調整的系統。
我是否理解正確:你需要將一些數據打包成一個字符串,然後將其放大,然後解壓縮? – 2011-05-06 20:35:13
我希望每個用戶都能夠將單個數據字符串定義爲單個格式字符串。他們必須能夠從數據庫中的字段中選擇和選擇可用的信息片段,並且可以用空格,分隔字符等來定義格式。另外,用於數據替換的每個標記都必須允許其自己的格式來定義數據如何被替換(例如,在上面的實例中用0填充項目編號) – Josh 2011-05-06 20:49:26