将Right和Instr转换为vb.net子串

时间:2015-05-05 17:52:08

标签: vb.net vba substring

我在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() 

但更长的代码似乎并不是一种改进。不是吗?

什么是正确的方法?

1 个答案:

答案 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

但如果你不关心"日期"只询问RightInstr然后Substring将是一个很好的解决方案,使用它的方式取决于您的输入字符串。