他人からコメントをいただきましたので、正規表現でHTMLを解析しようとするのは良い方法ではないかもしれませんが、これはあなたが求めていたものです。だからここに私達は行く:
`link`タグのための正規表現
@"(?ix)" +
@"<link\s*type=\x22(?'type'.*?)\x22\s*" +
@"href=\x22(?'href'.*?)\x22\s*" +
@"rel=\x22(?'rel'.*?)\x22\s*" +
@"\/>";
` script`タグのための正規表現
@"(?ix)" +
@"<script\s*type=\x22(?'type'.*?)\x22\s*" +
@"src=\x22(?'src'.*?)\x22\s*" +
@"><\/script>";
例は
あなたはあなたのHTMLを持っていると仮定すると文字列型の変数:
public const string LINK_PATTERN =
@"(?ix)" +
@"<link\s*type=\x22(?<type>.*?)\x22\s*" +
@"href=\x22(?<href>.*?)\x22\s*" +
@"rel=\x22(?<rel>.*?)\x22\s*" +
@"\/>";
public const string SCRIPT_PATTERN =
@"(?ix)" +
@"<script\s*type=\x22(?<type>.*?)\x22\s*" +
@"src=\x22(?<src>.*?)\x22\s*" +
@"><\/script>";
static void Main(string[] args)
{
string html = getBody();
Regex links = new Regex(LINK_PATTERN);
Regex scripts = new Regex(SCRIPT_PATTERN);
foreach (Match link in links.Matches(html))
{
Console.WriteLine("<link>: " + link);
Console.WriteLine("\ttype: " + link.Groups["type"]);
Console.WriteLine("\thref: " + link.Groups["href"]);
Console.WriteLine("\trel: " + link.Groups["rel"]);
Console.WriteLine("");
}
foreach (Match script in scripts.Matches(html))
{
Console.WriteLine("<script>: " + script);
Console.WriteLine("\ttype: " + script.Groups["type"]);
Console.WriteLine("\tsrc: " + script.Groups["src"]);
Console.WriteLine("");
}
Console.ReadKey();
}
public static string getBody()
{
string html = "";
html += "<html>";
html += "<head>";
html += "<link type=\"text/css\" href=\"c1.css\" rel=\"stylesheet\" />";
html += "<link type=\"text/css\" href=\"c2.css\" rel=\"stylesheet\" />";
html += "<link type=\"text/css\" href=\"c3.css\" rel=\"stylesheet\" />";
html += "<link type=\"text/css\" href=\"c4.css\" rel=\"stylesheet\" />";
html += "<link type=\"text/css\" href=\"c5.css\" rel=\"stylesheet\" />";
html += "<script type=\"text/javascript\" src=\"j1.js\"></script>";
html += "<script type=\"text/javascript\" src=\"j2.js\"></script>";
html += "<body>";
html += "<script type=\"text/javascript\" src=\"j3.js\"></script>";
html += "<script type=\"text/javascript\" src=\"j4.js\"></script>";
html += "</body>";
html += "</html>";
return html;
}
どのような '詳細'をしたいですか?属性の1つ?タグ全体? – Connell
正規表現を使うのは良い考えだと思いますか? –
なぜ正規表現を使用する必要がありますか? HTMLパーザを使用できないのはなぜですか? – CanSpice