如题:
1(  10007    12) 23 122 389   388
就是要替换括号中的空格,而不影响外部的空格,最后变为
1(10007:12) 23 122 389   388
我的想法是先剔除(后的空格,变为
1(10007    12) 23 122 389   388
然后再替换括号中的空格变为
1(10007:12) 23 122 389   388
现在第一步已经实现,最后一步无法实现,求高手赐教!ps:我用的是vb环境

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim s0 As String
        s0 = "1( 10007 12) 23 122 389 388"
        
        Dim s1 As String
        Dim P1 As Long, P2 As Long
        
        P1 = InStr(1, s0, "(")
        P2 = InStrRev(s0, ")")
        
        s1 = Mid(s0, P1 + 1, P2 - P1 - 1)
        s1 = Replace(s1, " ", ":")
        
        Mid(s0, P1 + 1, P2 - P1 - 1) = s1
        
        Debug.Print s0
    End Sub
      

  2.   

    Private Sub Form_Load()
        Dim s$, s2$
        s = "1( 10007 12) 23 122 389 388"
        With CreateObject("vbscript.regExp")
            .Pattern = "\((.*?)\)"
            s2 = .Execute(s)(0).SubMatches(0) '括号中的内容
        End With
        s = Replace(s, s2, Replace(Trim(s2), " ", ":"))
        MsgBox s
    End Sub建议还是用普通字符串处理方法