[英]Replace callback works in VS2013 but not in ideone
今天在VB.NET中使用正则表达式,并测试一个简单的replace回调lambda。
该代码在VS2013中可以完美地编译,但是ideone对此大喊大叫。 想知道VB.NET专业人士是否对此有所了解。 :)
正则表达式并不重要,这是测试功能的随机示例。 我关心的是replace回调。 我非常希望将MatchEvaluator内联在Replace内,如下所示,而不是分别声明函数。
在VS2013中,以下代码正确输出AAA111000(无警告,无错误)。 但是ideone不喜欢它 : 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
VB.NET似乎不适用于Ideone。 我认为也许在这种情况下,缺少换行符会使您失望,但是即使您解决了该问题,也可能会遇到其他问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.