xml のタグ値 (音楽の種類のスタイル) を一致させようとしています。
これはいくつかの例です:
1 つの音楽ジャンル: (ポップ) (rel="tag">ポップ)
<span class="genres"><a href="http://www.mp3crank.com/genre/shoegaze" rel="tag">Pop</a></span>
2 つの音楽ジャンル: (レゲエ) (スカ) (rel="tag">レゲエ) (rel="tag">スカ)
<span class="genres"><a href="http://www.mp3crank.com/genre/reggae" rel="tag">Reggae</a> / <a href="http://www.mp3crank.com/genre/ska" rel="tag">Ska</a></span>
2 つ以上の音楽ジャンル: (Alternative) (Indie) (Rock) (rel="tag">Alternative) (rel="tag">Indie) (rel="tag">Rock)
<span class="genres"><a href="http://www.mp3crank.com/genre/alternative" rel="tag">Alternative</a> / <a href="http://www.mp3crank.com/genre/indie" rel="tag">Indie</a> / <a href="http://www.mp3crank.com/genre/rock" rel="tag">Rock</a></span>
必要なのは、変数に追加する「ジャンル」の値を取得することです。
rel="tag">Genre</a>
...またはrel="tag">部分なしで" Genre " を取得できればもっと良いのですが、実際にはどうでもいいです。
これは私が行った RegEx です。うまく機能していません。2 つ以上のジャンル タグが存在する場合でも、最初のタグにのみ一致します。
Dim RegEx_AlbumStyle As New Regex(<a><![CDATA[rel=.+</a>\s?[^><]|rel=.+</a>]]></a>.Value)
これはコードです:
Dim AlbumStyle as string
Dim RegEx_AlbumStyle As New Regex(<a><![CDATA[rel=.+</a>\s?[^><]|rel=.+</a>]]></a>.Value)
If Line.Contains(<a><![CDATA[<span class="genres">]]></a>.Value) Then
For Each Style In RegEx_AlbumStyle.Match(Line).Groups
MsgBox("match:" & Style.ToString)
' I need to append all found matches to a string variable
' AlbumStyle += ", " & Style.ToString
' But I only find one match even if exists more than one genre value in the string
Next
End If