Я делаю редактор mp3 id3tag, а регулярное выражение не соответствует. Может ли кто-нибудь мне помочь? мой код:
arquivo = "[coletanea] album [CD #] [faixa] [artista] musica.mp3"
r = New Regex("^\[(?<1>[^\]]+?)\]\s*(?<2>[\w\s]+)\s*\[CD\s*(?<3>\d+)\]\s*\[(?<4>\d+)\]\s*\[(?<5>[^\]]+)\]\s*(?<6>.+)", RegexOptions.Compiled)
m = r.Match(Mid(arquivo, 1, Len(arquivo) - 4))
If m.Success Then
mAuthor = Trim(m.Groups(5).ToString)
mWM_AlbumTitle = Trim(m.Groups(2).ToString)
mWM_TrackNumber = Trim(m.Groups(4).ToString)
mTitle = Trim(m.Groups(6).ToString)
mWM_PartOfSet = Trim(m.Groups(3).ToString)
mMW_AlbumArtist = Trim(m.Groups(1).ToString)
End If





Это потому, что ваша строка никогда не будет соответствовать используемому вами регулярному выражению.
Регулярное выражение ожидает число вместо # и число вместо faixa.
Попробуйте, например:
"[coletanea] album [CD 20] [89] [artista] musica.mp3"
Если вы хотите использовать любой символ вместо чисел, замените \ d на. в группах 3 и 4
Что ж, ваша строка не соответствует регулярному выражению (поскольку '#' и 'faixa' не являются цифрами) попробуйте с этой строкой, я предполагаю, что это строка, которую вы получите от системы:
"[coletanea] album [CD 1] [1] [artista] musica.mp3"
Также немного странно называть группы захвата такими числами, потому что по умолчанию группы будут именоваться, начиная с 0.