如何获得Regex.Split VB.NET的相反结果?

时间:2014-08-22 17:35:02

标签: regex vb.net

我有一些字符串,如下所示:[H]GOODYEAR[/H] [H]TIRE[/H] & RUBBER COMPANY 我需要在这个字符串中的[H] [/ H]节点内得到单词。

我创建了这个正则表达式模式:\[H](.*?)\[\/H] 我试过用Regex.Split Method来获取这些单词。这是我的代码:

Dim pattern As String = "\[H](.*?)\[\/H]" 
Dim input As String = "[H]GOODYEAR[/H] [H]TIRE[/H] & RUBBER COMPANY"
Dim SearchedResult() As String = Regex.Split(input, pattern, RegexOptions.IgnoreCase)

但后来我意识到,这Split给了我一切,这不是我需要的。

我的问题:如何获得正确的单词?这是REVERSE正则表达式模式的任何方式吗?或者更好的方法来获得我的结果?

1 个答案:

答案 0 :(得分:4)

而不是split字符串,您应该使用正则表达式。 Matches方法。

注意:我使用内联修饰符(?si)s dotAll )修饰符强制点.匹配如果节点跨越多行,则为换行符;对于不区分大小写的匹配,则为i修饰符。

Dim input As String = "[H]GOODYEAR[/H] [H]TIRE[/H] & RUBBER COMPANY"
For Each m As Match In Regex.Matches(input, "(?si)\[H](.*?)\[/H]")
    Console.WriteLine(m.Groups(1).Value)
Next

<强>输出

GOODYEAR
TIRE