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

Converting Right and Instr into vb.net 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() 

但是更长的代码似乎并没有什么改进。不是吗?

正确的方法是什么?

我认为使用 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

但是如果你不关心 "Date" 而只是询问 RightInstr 那么 Substring 将是一个很好的解决方案和使用方式这取决于您输入的字符串。