以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何将字符串里面的数字和字母分离出来  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94299)

--  作者:edisontsui
--  发布时间:2016/12/20 19:15:00
--  如何将字符串里面的数字和字母分离出来
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:如何将字符串里面的数字和字母分离出来.rar


现请教附页问题。谢谢。

--  作者:fjlclxj
--  发布时间: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
--  作者:有点蓝
--  发布时间: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
--  发布时间:2016/12/20 21:18:00
--  
图片点击可在新窗口打开查看学习
[此贴子已经被作者于2016/12/20 21:32:48编辑过]

--  作者:edisontsui
--  发布时间:2016/12/21 14:03:00
--  
我不是针对一个制造产品号,而是面对许多制造产品号。平时操作时,我是在制造产品号里面不断输入很多行数据,那么在表属性里面要如何写代码才能达到字母和数字分离的目的呢?谢谢。
--  作者:有点色
--  发布时间:2016/12/21 14:13:00
--  
 你有没有认真看完3楼,把第一句替换成你对应单元格的值就行啊。
--  作者:edisontsui
--  发布时间: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
--  发布时间:2016/12/21 17:52:00
--  
说明:"制造产品号"是数据列的标题。
--  作者:edisontsui
--  发布时间:2016/12/21 18:05:00
--  

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

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

--  作者:有点色
--  发布时间: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