0

次の例がある場合、Linq を使用して、トークンで始まりトークンで終わるすべての文字列をどのように照会できますか?

例:

"<file type="log4net.Util.PatternString" value="$SomeKey$" /> 
 <appendToFile value="true" />
 <datePattern value="$AnotherOne$" />
 <rollingStyle value="$YetAgain$" />
 <layout type="$SomeloggingType$">"

結果が次のように enumberable で返される場所:

$SomeKey$
$AnotherKey$
$YetAgain$
$SomeloggingType$

文字列を配列に分割してループし、トークン $ のすべてのインデックスを見つけてそこにたどり着きましたが、Linq でこれをどのように達成するのでしょうか? ちょっと困惑した。

4

1 に答える 1

4

最初にテキストをセグメントに分割し、次に で開始および終了するすべてのセグメントを選択します$

var text = @"<file type=""log4net.Util.PatternString"" value=""$SomeKey$"" /> 
<appendToFile value=""true"" />
<datePattern value=""$AnotherOne$"" />
<rollingStyle value=""$YetAgain$"" />
<layout type=""$SomeloggingType$"">";

var result = text.Split(new[] { '"' })
    .Where(item => item.StartsWith("$") && item.EndsWith("$"));

// Test the result
foreach (var item in result)
{
    Console.WriteLine(item);
}
于 2012-07-03T02:36:46.827 に答える