Foxtable(狐表)用户栏目专家坐堂 → [求助]关于字符串分段


  共有2144人关注过本帖树形打印复制链接

主题:[求助]关于字符串分段

帅哥哟,离线,有人找我吗?
2900819580
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1353 积分:9874 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]关于字符串分段  发帖心情 Post By:2017/2/10 14:46:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

 关闭标志 is null and 完成入仓 = 'FALSE' and 组装车间_完成 = 'FALSE' and( 产品名称 like '%777%' or 产品名称 like '%8301%' )

 

如何将上面这段文字分段,如下所示。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/10 15:23:00 [只看该作者]

'''...
Dim str As String = "关闭标志 is null and 完成入仓 = 'FALSE' and 组装车间_完成 = 'FALSE' and ( 产品名称 like '%777%' or 产品名称 like '%8301%')"
str = str.ToLower
Dim keys() As String = {" is ", " = ", " like "}
dim flts as new list(Of string)
Do While True
    Dim sidx As Integer = 0
    Dim eidx1 As Integer = str.IndexOf(" and ")
    Dim eidx2 As Integer = str.IndexOf(" or ")
    Dim eidx As Integer = -1
    If eidx1>=0 AndAlso eidx2>=0 Then
        eidx = math.Min(eidx1+1, eidx2)
    ElseIf eidx1>=0 Then
        eidx = eidx1+1
    ElseIf eidx2>=0 Then
        eidx = eidx2
    End If
    If eidx >= 0 Then
        Dim temp As String = str.SubString(sidx, eidx)
        output.show(temp)
        flts.add(temp.trim)
        str = str.SubString(eidx+4)
    Else
        Dim temp As String = str.SubString(sidx)
        output.show(temp)
        flts.add(temp.trim)
        Exit Do
    End If
Loop
output.show("------------------")
For Each flt As String In flts
    For Each key As String In keys
        Dim idx As Integer = flt.IndexOf(key)
        If idx >= 0 Then
            output.show(flt.SubString(0, idx))
            output.show(key)
            output.show(flt.SubString(idx+key.length))
            Exit For
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/2/10 20:50:00 [只看该作者]

Dim s As String="关闭标志 is null and 完成入仓 = 'FALSE' and 组装车间_完成 = 'FALSE' and ( 产品名称 like '%777%' or 产品名称 like '%8301%')"
Dim p As String = "(?=is|\=|like)"
Dim p2 As String = "(?=and|or)"
Dim r As New System.Text.RegularExpressions.Regex(p2)
Dim str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next
Output.Show("-------------------")
r = New System.Text.RegularExpressions.Regex(p)
For Each a As String In str
    Dim s2() As String = r.Split(a)
    For Each b As String In s2
        Output.Show(b)
    Next
Next

 回到顶部