我是StackOverflow的新手
我遇到了问题:
Dim sample As String = "<b>test string any value </b> <b>This Continue line here </b>"
Dim ra As New Regex("<b>(.*)</b>")
Dim m As Match = ra.Match(sample)
If m.Success Then
MsgBox(m.Groups(1).Value)
End If
但我得到了这个输出:
test string any value </b> <b>This Continue line here
答案 0 :(得分:4)
通过在其后添加问号使*
乘数非贪婪,使表达式尽可能少地匹配,而不是尽可能少:
Dim ra As New Regex("<b>(.*?)</b>")
当乘数贪婪时,.*
将匹配字符串末尾的所有内容,然后它将回溯直到找到</b>
,这将是第二个标记的结尾。使用非贪心乘数,它将从匹配零个字符开始,然后增加匹配,直到找到</b>
,这将是第一个标记的结尾。