将 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" 而只是询问 Right
和 Instr
那么 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" 而只是询问 Right
和 Instr
那么 Substring
将是一个很好的解决方案和使用方式这取决于您输入的字符串。