Foxtable(狐表)用户栏目专家坐堂 → 求助:复杂的字符拆分代码


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

主题:求助:复杂的字符拆分代码

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/26 10:56:00 [显示全部帖子]

参考代码

 

Dim str As String = "P1234567890123456781T987654321Q0005000"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "T[0-9]+|P[0-9]+|Q[0-9]+")
If mc.count = 3 Then
    For i As Integer = 0 To mc.count-1
        Dim v = mc(i).value
        If v.startswith("P") Then
            msgbox("产品" & v.Substring(1))
        ElseIf v.startswith("T") Then
            msgbox("批次" & v.Substring(1))
        ElseIf v.startswith("Q") Then
            msgbox("数量" & v.Substring(1))
        End If
    Next
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/27 17:56:00 [显示全部帖子]

If e.DataCol.name = "条码编号" Then
    Dim str As String = e.NewValue
    If str > "" Then
        Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "T[0-9]+|P[0-9]+|Q[0-9]+")
        If mc.count = 3 Then
            For i As Integer = 0 To mc.count-1
                Dim v = mc(i).value
                If v.startswith("P") Then
                    e.DataRow("产品编号") = v.Substring(1)
                ElseIf v.startswith("T") Then
                    e.DataRow("批次编号") = v.Substring(1)
                ElseIf v.startswith("Q") Then
                    e.DataRow("数量") = v.Substring(1)
                End If
            Next
        Else
            e.DataRow("产品编号") = Nothing
            e.DataRow("批次编号") = Nothing
            e.DataRow("数量") = Nothing
        End If
    Else
        e.DataRow("产品编号") = Nothing
        e.DataRow("批次编号") = Nothing
        e.DataRow("数量") = Nothing
    End If
End If

 回到顶部