2016-07-24 5 views
0

私はこのタグ構造をしました:私はこの正規表現とtitle属性を取得しようとしているhrefからタイトルを取得するには?

<td class="team team-a "><a href="/teams/austria/sportverein-mattersburg/163/" title="Mattersburg">Mattersburg</a></td> 

href変数は、コンテンツ <td>ある正規表現が失敗したようだ
return Regex.Replace(href, "<a[^>]*?title=\"([^\"]*?\"[^>]*?>", ""); 

、どうして?

+0

あなたはちょうど閉じたかっこがありません。 – horcrux

答えて

1

構文エラーがありますが、これは主な問題ではありません。置き換えるときは、以外はを削除する必要があります。だから、タイトル自体の前にあるものすべてを削除してください。例えば、

return Regex.Replace(href, ".*title=\"|\".*", ""); 

あまり具体的な解決策は、ケースにtitle属性を持つ他のいくつかのタグがそこにいる、とあなたは<a>のタイトルだけを必要とする:

.*<a[^>]*?title=\"|\".* 
2

あなたが代わりをしたい場合は、取りますHtmlAgilityPackを見てください:

var html = "<td class=\"team team-a\"><a href=\"/teams/austria/sportverein-mattersburg/163/\" title=\"Mattersburg\">Mattersburg</a></td>"; 

var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(html); 
var node = doc.DocumentNode.SelectNodes("//a") [0]; 
Console.WriteLine(node.Attributes["Title"].Value); 

もちろん、RegExはもっと速くなければなりません。しかし、私の経験では、HtmlAgilityPackは使いやすく、不規則性や無効なhtmlに関してはもっと寛容です。

関連する問題