0

我想检索字符串的一部分,我的问题是我是否可以在不触及匹配字符串(子字符串或拆分)的情况下获得正确的字符串,我知道拆分/子字符串很容易,但我想知道我是否可以改进RegEx 自己完成这项工作。

这是字符串:

<h3 class="btl"><a href="http://post-hardcore.ru/music/2689-drifter-in-search-of-something-more-ep-2013.html">Drifter - In Search of Something More [EP] (2013)</a></h3>

这就是我得到的:

>Drifter - In Search of Something More [EP] (2013)</a><

这就是我想要得到的:

Drifter - In Search of Something More [EP] (2013)

这是我的正则表达式:

Dim RegEx_AlbumName As New Regex(">[^<].*<")

MsgBox(RegEx_AlbumName.Match(Line).Groups(0).ToString)

我不想这样做:

AlbumName = RegEx_AlbumName.Match(Line).Groups(0).ToString.Substring(1).Replace("</a><", "")

编辑:请注意,括号单词“(2013)”可能不在我需要匹配的其他字符串中。

4

1 回答 1

1

你的正则表达式很接近。[^<]只对第一个字符起作用,直到最后一个字符>被吃掉,因为它是贪婪的。尝试这个:.*<

Dim RegEx_AlbumName As New Regex(">([^<]+?)<")

MsgBox(RegEx_AlbumName.Match(Line).Groups(1).ToString)

告诉正?则表达式匹配最短的可能字符串。只有在这种情况下,我认为没有它也可以工作。

于 2013-05-20T00:33:05.360 回答