1

以下のような解析中のhtml文字列があります。@Footer の値を取得する必要があります。

strHTML = "<html><html>\r\n\r\n<head>\r\n<meta http-equiv=Content-Type 
           content=\"text/html; charset=windows-1252\">\r\n
           <meta name=Generator content=\"Microsoft Word 14></head></head><body> 
           <p>@Footer=CONFIDENTIAL<p></body></html>"

以下のコードを試しましたが、値を取得するにはどうすればよいですか?

Regex m = new Regex("@Footer", RegexOptions.Compiled);
foreach (Match VariableMatch in m.Matches(strHTML.ToString()))
{
     Console.WriteLine(VariableMatch);
}
4

5 に答える 5

2

の後の値を取得する必要があります=<値に文字を含めることができない限り、これは機能します。

Regex m = new Regex("@Footer=([^<]+)", RegexOptions.Compiled);
foreach (Match VariableMatch in m.Matches(strHTML.ToString()))
{
    Console.WriteLine(VariableMatch.Groups[1].Value);
}
于 2013-08-26T17:01:44.297 に答える
1

正規表現は文字列「@Footer」と一致します。一致の値は「@Footer」になります。

代わりに、正規表現は次のようになります。

Regex regex = new Regex("@Footer=[\w]+");
string value = match.Value.Split('=')[1];
于 2013-08-26T17:02:29.230 に答える
1

一致するグループを使用します。

Regex.Matches(strHTML, @"@Footer=(?<VAL>([^<\n\r]+))").Groups["VAL"].Value;
于 2013-08-26T17:02:51.250 に答える