当前位置 : 主页 > 编程语言 > c语言 >

如何从vb.net中的正则表达式匹配中获取字符串?

来源:互联网 收集:自由互联 发布时间:2021-06-24
我有 : Dim Text = "some text here ###MONTH-3### some text here ###MONTH-2### some text here"Dim regex = New System.Text.RegularExpressions.Regex("###MONTH[+-][0-9]###")For Each match In regex.Matches(Text) // What to write here ? // So,
我有 :

Dim Text = "some text here ###MONTH-3### some text here ###MONTH-2### some text here"
Dim regex = New System.Text.RegularExpressions.Regex("###MONTH[+-][0-9]###")
For Each match In regex.Matches(Text)
    // What to write here ?
    // So, that ###MONTH-i### gets replaced with getmonth(i)
    // Therefore, final Text will be :
    // Text = "some text here" + getmonth(-3) + "some text here" + getmonth(-2) + "some text here"
Next match

我想我已正确解释了我的问题..

那么,你能帮忙吗?

我想这就是你想要的.

Dim text As String = "some text here ###MONTH-3### some text here ###MONTH-2### ..."
Dim regex = New System.Text.RegularExpressions.Regex("###MONTH[+-][0-9]###")

return regex.replace(text, AddressOf GetMonthFromMatch)

Function GetMonthFromMatch(ByVal m As Match) As String
    ' Get the matched string.
    Dim matchText As String = m.ToString()

    Dim offset As Int = Integer.Parse(matchText.Right(2))
    Return getmonth(offset)
End Function

这使用GetMonthFromMatch委托处理每个匹配,然后调用getmonth函数. RegEx.Replace函数将使用委托替换每个匹配.

网友评论