我正在尝试从该字符串中获取两个代码:“ HL PNX-70 [15200]” 但是通过此代码,我获得了两次相同的输出:“ HL PNX-70”。因此,代码未正确完成。 如何从上述字符串获取输出“ 15200”?
代码:
Private Sub Comando221_Click()
MsgBox (Right(Split("HL PNX-70[15200]", "[")(0), 50))
MsgBox (Left(Split("HL PNX-70[15200]", "[")(0), 50))
End Sub
答案 0 :(得分:2)
您在寻找这个吗?
Sub Test()
MsgBox Split("HL PNX-70[15200]", "[")(0)
MsgBox Replace(Split("HL PNX-70[15200]", "[")(1), "]", "")
End Sub
答案 1 :(得分:0)
Split
返回一个从零开始的数组,因此您对第二个元素索引1感兴趣。代码的两行都提取了“ HL PNX-70”,最左边和最右边的50个字符显然是一样。
此代码说明了为特定示例提取所需字符串的两种方法,但是如果要使用多种不同类型的字符串,则不一定是固定的。根据其他答案,您也可以使用Instr,或者如果需要更复杂的模式匹配,可以查看正则表达式。
Sub y()
Dim s As String, v
s = "HL PNX-70[15200]"
v = Split(s, "[")
Debug.Print v(0) 'HL PNX-70
Debug.Print v(1) '15200]
MsgBox Left(v(1), Len(v(1)) - 1) '15200
v = Split(v(1), "]")
MsgBox v(0) '15200
End Sub
答案 2 :(得分:0)
您可以尝试:
contextual__pipeline_1__num_features
答案 3 :(得分:0)
这是您的代码
Dim text, text1, text2 As String
text = "HL PNX-70[15200]"
text1 = Break_String(CStr(text), 0)
text2 = Break_String1(Break_String(CStr(text), 1))
Function Break_String(a As String, pos As Integer) As String
Dim WrdArray() As String
WrdArray() = Split(a, "[")
Break_String = WrdArray(pos)
End Function
Function Break_String1(a As String) As String
Dim WrdArray() As String
WrdArray() = Split(a, "]")
Break_String1 = WrdArray(0)
End Function