如何从右到左解析/分割第二个特定字符?

我有这样的字符串:

sometexthere_moretext_moretext_12512512521_251125512125

或:

sometexthere_moretext_12512512521_251125512125

在任何一种情况下,我都需要两种情况来解析:

var1 = sometexthere_moretext_moretext_ var2 = 12512512521_251125512125

var1 = sometexthere_moretext_ var2 = 12512512521_251125512125

所以我试图找到如何从右到左解析/分割第二个“ _”。任何帮助将不胜感激。

Dim variable As String
variable = sometexthere_moretext_moretext_12512512521_251125512125

Dim StringArray() As String
StringArray() = Split(variable,"_")


For i = 0 To UBound(StringArray)
    MsgBox Trim$(StringArray(i))
Next
robinwu20090630 回答:如何从右到左解析/分割第二个特定字符?

您非常接近,UBound(StringArray)将在此示例中返回4,因此您要从索引3开始:

Dim variable As String
variable = "sometexthere_moretext_moretext_12512512521_251125512125"

Dim StringArray() As String
StringArray() = Split(variable,"_")

Dim var1 As String
Dim var2 As String

' Build var1
var1 = ""
For i = 0 To (UBound(StringArray) - 2)
    If var1 <> "" Then var1 = var1 & "_"
    var1 = var1 & Trim$(StringArray(i))
Next

' Build var2
var2 = ""
For i = (UBound(StringArray) - 1) To UBound(StringArray)
    If var2 <> "" Then var2 = var2 & "_"
    var2 = var2 & Trim$(StringArray(i))
Next

MsgBox "var1: " & var1 & vbCrLf & "var2: " & var2

使用此代码,无论数字前有多少字段,您都只会得到数字。

,

另一种方法,使用instrRev:

Dim leftPart as string,rightPart as String,var1 as string
var1 = "sometexthere_moretext_moretext_12512512521_251125512125"
If UBound(Split(var1,"_")) >= 2 Then 'Assuming you have at least 2 "_" in var1
    leftPart = Left(var1,InstrRev(Left(var1,instrRev(var1,"_") - 1),"_") - 1)
    rightPart = Mid(var1,"_") + 1)
Endif
本文链接:https://www.f2er.com/3060596.html

大家都在问