我想要检索一个字符串的一部分,我的问题是我是否可以获得正确的字符串而不触及匹配的字符串(子字符串或拆分),我知道很容易做一个分割/子字符串但是我想知道是否我可以改进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)
这是我的RegEx:
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)”可能不在我需要匹配的其他字符串中。
答案 0 :(得分:1)
你的正则表达式很接近。 [^<]
仅在>
.*
吃完任何角色后直到最后<
才对第一个角色起作用,因为它是贪婪。试试这个:
Dim RegEx_AlbumName As New Regex(">([^<]+?)<")
MsgBox(RegEx_AlbumName.Match(Line).Groups(1).ToString)
?
告诉正则表达式匹配最短的字符串。只有在这种情况下,我认为没有它也会有效。