我在VBA中编写了一个代码,我正在尝试将其转移到Vb.Net,但我不确定我的工作。
VBA代码(适用于vb.net):
Dim stringDate$ = "something happens: 03/12/2014 11:00"
Dim C$ = Trim(Strings.Right(stringDate, Len(stringDate) - InStr(1, stringDate, ":", vbTextCompare)))
Vb.Net代码:
Dim C$ = stringDate.substring(stringDate.length - stringDate.indexof(":"), stringDate.length - (stringDate.length -stringDate.indexof(":"))).trim()
但更长的代码似乎并不是一种改进。不是吗?
什么是正确的方法?
答案 0 :(得分:1)
我认为使用Regex是从字符串中提取日期的最佳方法,因为您每次都可以使用不同的字符串,例如:
Dim stringDate = "something happens: 03/12/2014 11:00"
Dim stringDate = "something 03/12/2014 11:00"
Dim stringDate = "something happens:::>> 03/12/2014 11:00"
使用以下代码,您可以从所有这些字符串中提取日期:
Dim m As Match = New Regex("\d{2}/\d{2}/\d{4} \d{2}:\d{2}").Match(stringDate)
If m.Success Then
MsgBox(m.Value)
End If
但如果你不关心"日期"只询问Right
和Instr
然后Substring
将是一个很好的解决方案,使用它的方式取决于您的输入字符串。