Foxtable(狐表)用户栏目专家坐堂 → 数字+英文的 款号自动分析[已解決]


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

主题:数字+英文的 款号自动分析[已解決]

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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/17 15:20:00 [显示全部帖子]

呵呵,我再来个不用正则表达式的:

 

Dim nms() As String = {"08476R","MAR480","00039ER","00076EN","00940SE","08835E","GJP123"}
For Each nm As String In nms
    Dim v As String = nm.SubString(nm.Length -2)
    If Char.IsLetter(v.Chars(0)) AndAlso Char.IsLetter(v.Chars(1)) Then
        If v.Chars(0) = "e" Then
            output.show(nm & ":exp")
        ElseIf v.Chars(0) = "s" Then
            output.show(nm & "str")
        End If
    ElseIf Char.IsDigit(v.Chars(0)) AndAlso Char.IsLetter(v.Chars(1))  Then
        output.show(nm & ":atm")
    ElseIf Char.IsLetter(nm.Chars(0)) AndAlso Char.IsLetter(nm.Chars(1)) AndAlso  Char.IsLetter(nm.Chars(2))  Then
        output.show(nm & ":atm")
    End If
Next


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/17 15:59:00 [显示全部帖子]

当然你可以,这里告诉你的是判断的方法,有了方法,你怎么写都行。


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


加好友 发短信
等级:管理员 帖子:47511 积分:251479 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/17 16:21:00 [显示全部帖子]

呵呵,估计这样你就理解了:

 

Dim nm As String = "08476R"
Dim v As String = nm.SubString(nm.Length -2)
If Char.IsLetter(v.Chars(0)) AndAlso Char.IsLetter(v.Chars(1)) Then
    If v.Chars(0) = "e" Then
        output.show(nm & ":exp")
    ElseIf v.Chars(0) = "s" Then
        output.show(nm & "str")
    End If
ElseIf Char.IsDigit(v.Chars(0)) AndAlso Char.IsLetter(v.Chars(1))  Then
    output.show(nm & ":atm")
ElseIf Char.IsLetter(nm.Chars(0)) AndAlso Char.IsLetter(nm.Chars(1)) AndAlso  Char.IsLetter(nm.Chars(2))  Then
    output.show(nm & ":atm")
End If

 

我原来那样写,只是为了让你一次可以验证各种情况,结果适得其反。


 回到顶部