1

HTML エンコードされた文字列からパターンを認識するための助けを探しています。

次のような HTML エンコードされた文字列がある場合:

string strHTMLText=@"<p>Pellentesque habitant [[@Code1]] morbi tristique senectus [[@Code2]] et netus et malesuada fames ac [[@Code3]] turpis egestas.</p>"

[[@Code1]]、[@Code2]、[[@Code3]]という動的な単語を抽出する必要があり、その数は不明です。これらの単語は、提供された HTML テキストの他の値を置き換えるために使用されています。

パターン[[@ something ]]を認識し、すべてのオカレンスを配列などに入力して、これらの値を処理して後でデータベースから関連する値をフェッチできるようにしたいと考えています。

4

3 に答える 3

4
string strHTMLText=@"<p>Pellentesque habitant [[@Code1]] morbi tristique senectus [[@Code2]] et netus et malesuada fames ac [[@Code3]] turpis egestas.</p>";
var input = HttpUtility.HtmlDecode(strHTMLText);
var list = Regex.Matches(input, @"\[\[@(.+?)\]\]")
    .Cast<Match>()
    .Select(m => m.Groups[1].Value)
    .ToList();
于 2012-09-12T06:29:58.493 に答える
0

正規表現を使用できます。

この式を使ってみてください

Regex exp = new Regex("\[.+?\]")
MatchCollection mc = exp.matches(<Your string here>);
foreach(Match m in mc)
{
   String code = m.value;
}

私はこのコードをテストしていませんが、これは迅速で汚い擬似コードなので、ご容赦ください。

于 2012-09-12T06:32:26.083 に答える
0

誰かが正規表現の解決策を提示するまで、楽しみのために私はあなたのためにこれを行いました:

string strHTMLText=@"&lt;p&gt;Pellentesque habitant [[@Code1]] morbi tristique senectus [[@Code2]] et netus et malesuada fames ac [[@Code3]] turpis egestas.&lt;/p&gt;";

IEnumerable<string> arr = strHTMLText.Split(new char[] {'['};
List<string> output = new List<string>();
foreach(var item in arr)
{
string placeHolder = item.Substring(0,item.IndexOf("]");
output.Add(placeHolder);
}

出力を配列に取得するには:

output.ToArray();
于 2012-09-12T06:19:01.940 に答える