VB 如何才能取一段文本的特定部分

VB 怎么才能取一段文本的特定部分

初学VB 看不懂 正则表达式

想问一下 怎么才能取一段文本的特定部分



就比如 “想问一下 怎么才能取一段文本的特定部分”

我想取 “怎么” 跟 “特定” 这俩个之间的文本



当然这两个词是不固定的。

谢谢各位 30分奉上

------解决方案--------------------
VB code
Private Sub Command1_Click()
    Dim strTemp As String
    Dim strS As String
    Dim strE As String
    Dim intS As Integer
    Dim intE As Integer
    
    strTemp = "想问一下 怎么才能取一段文本的特定部分"
    strS = "怎么"
    strE = "特定"
    
    intS = InStr(1, strTemp, strS) + Len(strS)
    intE = InStr(1, strTemp, strE) - 1
    Debug.Print Mid(strTemp, intS, intE - intS + 1)
    
End Sub

------解决方案--------------------
'此代码由“正则测试工具 v1.1.35”自动生成,请直接调用TestReg过程
VB code
Private Sub TestReg()
    Dim strData As String
    Dim reg As Object
    Dim matchs As Object, match As Object

    strData = "想问一下 怎么才能取一段文本的特定部分"

    Set reg = CreateObject("vbscript.regExp")
    reg.Global = True
    reg.IgnoreCase = True
    reg.MultiLine = True
    reg.Pattern = "怎么(.*?)特定"
    Set matchs = reg.Execute(strData)
    For Each match In matchs
        'Debug.Print match.Value
        Debug.Print match.SubMatches(0)
    Next
End Sub

------解决方案--------------------
如果就是这样的简单需求,可以不用正则表达式。

VB code
Option Explicit
Dim strSource As String

Private Sub Command1_Click()
    Dim strTmp1() As String, strTmp2() As String, i As Integer, n As Integer

    strTmp1 = Split(strSource, Text1)
    n = UBound(strTmp1)
    
    If n Then
        For i = 0 To n
            If InStr(strTmp1(i), Text2) Then
                strTmp2 = Split(strTmp1(i), Text2)
                MsgBox strTmp2(0)
            End If
        Next i
    End If
    
End Sub

Private Sub Form_Load()
    strSource = "想问一下 怎么才能取一段文本的特定部分"
    Text1 = "怎么"
    Text2 = "特定"
End Sub