以文本方式查看主题 - 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 -- 如何将字符串里面的数字和字母分离出来
现请教附页问题。谢谢。
|
||||
-- 作者: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 |