我有一些字符串,如下所示:[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
正则表达式模式的任何方式吗?或者更好的方法来获得我的结果?
答案 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