2011-01-13 9 views
0

次のように1/2の正規表現を作成できますか?正規表現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

これは私が今持っているものです:あなたは明らかに辞書にあなたのJSONを解析されてきた

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? –

+0

heh ...だからこそ、私は1/2のライナーと言った。しかしもちろん、そうである必要はありません。私はちょうどエレガントなソリューションを探しています。 – imyoac

答えて

0

[OK]をので。私によって良い。正規表現に続いて、XML文字列からキャプチャグループという名前の変数名を取得します。

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

この式は、対応するすべての変数をループで使用できます。

関連する問題