如何从vb.net中的正则表达式匹配中获取字符串?(How to get a string from a regex match in vb.net?)
我有 :
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我想我已正确解释了我的问题..
那么,你能帮忙吗?
I have :
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 matchI think I have explained my problem properly..
So, can you please help ?
最满意答案
我想这就是你想要的。
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函数将使用委托替换每个匹配。
Here is what you want, I think.
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 FunctionThis uses the GetMonthFromMatch delegate to process each match and in turn call the getmonth function. The RegEx.Replace function will use the delegate to substitute each match.
更多推荐
发布评论