今天在VB.NET中使用正则表达式并测试一个简单的替换回调lambda。
代码在VS2013中完美编译,但是想法会对它产生尖叫。想知道VB.NET专业人士是否会对此有所了解。 :)
正则表达式并不重要,它是测试该功能的随机示例。我关心的是替换回调。我非常热衷于将MatchEvaluator保持在Replace内部,如下所示,而不是单独声明该函数。
在VS2013中,以下代码正确输出AAA111000(无警告,无错误)。但是ideone doesn't like it:prog.vb (8,1) : Error VBNC90019: Expected ')'
。
Imports System
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim SomeRegex As New Regex("\d{3}")
Dim Subject As String = "AAA123456"
Dim NewString As String = SomeRegex.Replace(Subject,
Function(m As Match)
If (m.Groups(0).Value = "123") Then
Return "111"
Else
Return "000"
End If
End Function
)
Console.WriteLine(NewString)
Console.WriteLine(vbCrLf & "Press Key")
Console.ReadKey()
End Sub
End Module
答案 0 :(得分:0)
VB.NET似乎与Ideone不太合作。我想也许在这种情况下,缺少行继续字符会让你失望,但即使你解决了这个问题,你也可能会遇到其他问题。