Foxtable(狐表)用户栏目专家坐堂 → 如何将字符串里面的数字和字母分离出来


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

主题:如何将字符串里面的数字和字母分离出来

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:10082 威望:0 精华:0 注册:2014/12/18 16:12:00
如何将字符串里面的数字和字母分离出来  发帖心情 Post By:2016/12/20 19:15:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:如何将字符串里面的数字和字母分离出来.rar


现请教附页问题。谢谢。

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


加好友 发短信
等级:小狐 帖子:321 积分:2468 威望:0 精华:2 注册:2013/1/16 19:33:00
  发帖心情 Post By:2016/12/20 20:13:00 [只看该作者]

Dim s As String="BRC2532G10ST2P104"
Dim i As Integer = s.Length
Dim aa(),bb() As String
Dim a ,b As String
a="" : b=""
For j As Integer = 0 To i-1
    Dim t As  String
    t=s.chars(j)
    If IsNumeric(t) Then
        a=a & t
        If b.EndsWith("-") =False Then
            b=b & "-"
        End If
    Else
        b=b & t
        If a.EndsWith("-")=False Then
            a=a & "-"
        End If
    End If
Next
a=a.Trim("-") : b=b.Trim("-")
aa=a.Split("-") : bb=b.Split("-")
For Each a In aa
    Output.Show(a)
Next
For Each b In bb
    Output.Show(b)
Next

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/20 21:02:00 [只看该作者]

Dim s As String="BRC2532G10ST2P104"
Dim p As String = "\d+"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next

p = "[a-zA-Z]+"
r = New System.Text.RegularExpressions.Regex(p)
str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next

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


加好友 发短信
等级:二尾狐 帖子:574 积分:4258 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2016/12/20 21:18:00 [只看该作者]

图片点击可在新窗口打开查看学习
[此贴子已经被作者于2016/12/20 21:32:48编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:10082 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2016/12/21 14:03:00 [只看该作者]

我不是针对一个制造产品号,而是面对许多制造产品号。平时操作时,我是在制造产品号里面不断输入很多行数据,那么在表属性里面要如何写代码才能达到字母和数字分离的目的呢?谢谢。

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


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

 你有没有认真看完3楼,把第一句替换成你对应单元格的值就行啊。

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:10082 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2016/12/21 17:43:00 [只看该作者]

Dim s As String="制造产品号"
Dim p As String = "\d+"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next

p = "[a-zA-Z]+"
r = New System.Text.RegularExpressions.Regex(p)
str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next


我把上面代码放入数据表->表属性->事件”datacolchanged“里面了。但是,如何将分割后的每串字符和数字在每个数据列里面显示出来?


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


加好友 发短信
等级:七尾狐 帖子:1553 积分:10082 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2016/12/21 17:52:00 [只看该作者]

说明:"制造产品号"是数据列的标题。

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


加好友 发短信
等级:七尾狐 帖子:1553 积分:10082 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2016/12/21 18:05:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:制造产品号的拆分.jpg
图片点击可在新窗口打开查看

我就是希望将代码写在数据表->表属性->事件里面,当”制造产品号“一栏输入数据之后,将字母和数字拆分开来,分别放到不同的数据列里面去。

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


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

If e.DataCol.name = "制造产品号" AndAlso e.newvalue > "" Then
    Dim zml() As String = {"字母列1", "字母列2"}
    Dim szl() As String = {"数字列1", "数字列2"}
    Dim s As String = e.newvalue
    Dim p As String = "\d+"
    Dim mc = System.Text.RegularExpressions.Regex.Matches(s, p)
    For i As Integer = 0 To mc.count-1
        e.DataRow(szl(i)) = mc(i).value
    Next
   
    p = "[a-zA-Z]+"
    mc = System.Text.RegularExpressions.Regex.Matches(s, p)
    For i As Integer = 0 To mc.count-1
        e.DataRow(zml(i)) = mc(i).value
    Next
End If

 回到顶部
总数 16 1 2 下一页