2011-01-13 52 views
0

是否可以創建一個/兩個班輪正則表達式來執行以下操作?正則表達式1或2內襯 - 是否有可能?

我想找到這個JSON數據:

string ourdata = @"{ 
    'Field1':'Some ""awesome"" One', 
    'Field2':'second field', 
    'Field3':'/path/to/image.jpg', 
    'Field4':'f4data', 
    'Field5':'f5data', 
    'Field6':'f6data', 
    'Field7':'f7data', 
    'Field8':'f8data', 
    'Field9':'f9data', 
    'Field10':'f10data', 
    'Field11':'f11data', 
    'Field12':'f12data', 
    'AnotherField':'some field' 
}"; 

內這一點,並更換|| FieldX ||與相應的json數據:

string fakeDoc = @" 
    <?xml version=""1.0"" encoding=""UTF-8"" standalone=""no""?> 
    <svg xmlns:xlink=""http://www.w3.org/1999/xlink"" background=""#ffffff"" xmlns:svg=""http://www.w3.org/2000/svg"" xmlns=""http://www.w3.org/2000/svg"" version=""1.2"" width=""1758"" height=""1292"" viewBox=""0 0 1758 1292"" id=""SVGCanvas""> 
    <flowRoot id=""return_address_root"" font-size=""36px"" font-family=""Arial"" fill=""#000000""> 
     <flowRegion id=""return_address_region""> 
      <rect width=""600"" height=""150"" x=""64"" y=""65"" fill=""none"" id=""return_address_shape""/> 
     </flowRegion> 
     <flowDiv id=""return_address""><flowPara xml:space=""preserve""><![CDATA[||Field1||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field2||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field3||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field5||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field1||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field2||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field4||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field5||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field6||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field7||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field8||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||Field9||]]></flowPara> 
      <flowPara xml:space=""preserve""><![CDATA[||AnotherField||]]></flowPara> 
     </flowDiv> 
    </flowRoot> 
    </svg>"; 

可能嗎?

--- UPDATE ---

這就是我現在所擁有的:

Dictionary<string, string> values = JsonConvert.DeserializeObject<Dictionary<string, string>>(ourdata); 
StringBuilder sb = new StringBuilder(fakeDoc); 

foreach (KeyValuePair<string, string> pair in values) 
    sb.Replace(pair.Key, pair.Value); 

Console.WriteLine(sb.ToString()); 
+2

什麼是行? 79個字符? 256? – 2011-01-13 16:39:48

回答

0

好了,所以你顯然解析您的JSON到字典中。我沒意見。下面的正則表達式會得到你的變量名稱命名的捕獲組從我們的XML字符串:

@"\|\|(?<variableName>[^|]+)\|\|" 

該表達式可以在一個循環中,取代所有相應的變量中。

相關問題