2011-06-03 7 views
2
<td width="100%"><h1>Chicago, IL Weather</h1></td> 

タグh1のテキストを取得したいとします。このため私はC#で正規表現コードを使用したいと思います。誰も私に解決策を教えてもらえますか?これを利用することでHTML内のタグを読み取る正規表現

+0

を与えますか? –

+0

[Parse HTML Links with C#](http://stackoverflow.com/questions/122856/parse-html-links-using-c)を見てください。ライブラリを使用できませんでしたか? –

+0

正規表現よりもDOMを使う方が良い。なぜ私は正規表現をHTMLの解析に使うのは良い考えではないのかを説明するために投稿したこの返信の後半部分を見てください:http://stackoverflow.com/questions/6224792/javascript-get-strings-inside-a-string/6224887#6224887 – Spudley

答えて

2

はそれに打撃

String h1Regex = "<h1[^>]*?>(?<TagText>.*?)</h1>"; 

MatchCollection mc = Regex.Matches(Data, h1Regex, RegexOptions.Singleline); 

foreach (Match m in mc) { 
    Console.Writeline (m.Groups["TagText"].Value); 
} 
3
System.Text.RegularExpressions.Regex bodyRegex = new System.Text.RegularExpressions.Regex(@"(<h1[^>]*>[\u0000-\uFFFF]+?</h1>)"); 
System.Text.RegularExpressions.Match bodyMatch = bodyRegex.Match(line); 
     if (bodyMatch.Success) 
      { 
      FileContent = bodyMatch.Result("$0"); 
      FileContent = (FileContent.Replace(@"<h1>", "")).Replace(@"</h1>", ""); 
} 

最初のH1タグの値を見つけることができます

+1

この回答は削除する前に削除する必要があります。 StackOverflowに関するコンセンサスの意見は、[**あなたは正規表現でHTMLを解析しない**](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-タグ/ 1732454#1732454) –

+3

@Mike Pennington - stackoverflowコンセンサスが間違っています。この回答を削除しないでください。今までの唯一のものは、依頼された非常に具体的な質問に答えることさえしようとしています。 –

+0

@PP、あなたは4000以上のアップフォートを持っていると答えています。 –

0

あなたが正規表現にしたいなぜ、私はそれが最速の方法です知っているが、それはあまりにものような欠点だ:それは台無し 1をコードの可読性アップ、

  1. HTMLファイルが、それはあなたが新しい正規表現を記述するための偉大な苦痛だろう変更する場合は、

あなたはABSOない限り本当にありがとう、正規表現を残して、HTMLパーザ(前述のHTMLAgilityPackのようなもの)に行ってください。あなたは正規表現を使用することを望んでいるのはなぜ

関連する問題