0

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
4

1 に答える 1