Foxtable(狐表)用户栏目专家坐堂 → 字符串提取


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

主题:字符串提取

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


加好友 发短信
等级:婴狐 帖子:19 积分:248 威望:0 精华:0 注册:2013/6/29 9:28:00
字符串提取  发帖心情 Post By:2013/7/8 15:56:00 [只看该作者]

如何能够把“张三0016ecb78f9c”  “张三三0016ecb78091” 等样式的字符串中的 后面的0016ecb78091提取出来?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/8 16:01:00 [只看该作者]

前半部分中文 不会变?  后半部分英文+数字?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/8 16:13:00 [只看该作者]

其实你这个需求用空格区分一下不是能很简单的解决吗?

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


加好友 发短信
等级:婴狐 帖子:19 积分:248 威望:0 精华:0 注册:2013/6/29 9:28:00
  发帖心情 Post By:2013/7/8 16:14:00 [只看该作者]

对 前半部分或是三个中文或是二个中文 后半部分肯定是12个数字或字母

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/8 16:17:00 [只看该作者]

Dim s As String="张三三0016ecb78f9c"
Dim name As String= System.Text.RegularExpressions.Regex.Match(s,"[\u4e00-\u9fa5]+").ToString()
Dim code As String = System.Text.RegularExpressions.Regex.Match(s,"[0-9a-zA-Z]+").ToString()
MessageBox.show("姓名: " & name  & "      " & "卡号:  " & code)

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/8 16:17:00 [只看该作者]

如果后面非汉字部分的长度不变,就简单了:

Dim s As String

For Each r As Row In e.Table.Rows

    s = Right(r("字符串列"),12)

Next


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


加好友 发短信
等级:幼狐 帖子:154 积分:1523 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2013/7/8 16:24:00 [只看该作者]

以下是引用sddcyj在2013-7-8 16:14:00的发言:
对 前半部分或是三个中文或是二个中文 后半部分肯定是12个数字或字母

提供个思路探讨。

dim s as string

select case s.length

    case 14 ‘获取字符串长度,如果是14位,

         s.SubString(s.Length -2)  ’获取字符串右侧12位

    case 15  ‘如果是15位 

         s.SubString(s.Length -3)   ’获取字符串右侧12位

end select

没有运行,仅供参考


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


加好友 发短信
等级:幼狐 帖子:154 积分:1523 威望:0 精华:0 注册:2011/8/29 20:48:00
  发帖心情 Post By:2013/7/8 16:25:00 [只看该作者]

可参考帮助的“字符串概述”

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


加好友 发短信
等级:幼狐 帖子:150 积分:2102 威望:0 精华:0 注册:2008/9/10 22:48:00
  发帖心情 Post By:2013/7/10 3:01:00 [只看该作者]

Dim str As String = "张三三0016ecb78091"
If str <> "" Then
    Dim n As Integer = str.Length - 1
    Dim ID As String = ""
    Dim Name As String = ""
    For i = 0 To n
        If str.Chars(i) Like "[0-9]" Then
            ID = ID & str.Chars(i)
        ElseIf str.Chars(i) Like "[a-x]" Then
            ID = ID & str.Chars(i)
        Else
            Name = Name & str.Chars(i)
        End If
    Next
    ID = ID.Trim
    Name = Name.Trim
    Output.Show(Name)
    Output.Show(ID)
End If

这个办法笨一点,但是好懂,且不受字符数和顺序的限制!自动分拣
[此贴子已经被作者于2013-7-10 3:03:53编辑过]

 回到顶部