以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 提取后10位字符 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128022) |
-- 作者:yangwenghd -- 发布时间:2018/11/27 11:13:00 -- 提取后10位字符 能帮忙看看这个吗? 就是提取列后面10位为文字的字符 现在就是还能会把“】”符号提取出来,能帮忙改一下吗?就是改为只提取文字字符,其他都不要 什么逗号,括号 空格,都跳过。 If e.DataCol.Name = "文件夹编号转换_商品名称" Then Dim Oldstr As String =e.DataRow("文件夹编号转换_商品名称") Dim Newstr As String = "" For i As Integer = Oldstr.Length - 1 To 0 Step - 1 If Asc(Oldstr.Chars(i)) < 0 AndAlso Newstr.Length < 10 Then Newstr = Oldstr(i) & Newstr End If Next Newstr = "" & NewStr & "" \'e.DataRow("第六列") e.DataRow("文件夹编号转换_后10位字符")="" & Newstr & "" End If [此贴子已经被作者于2018/11/27 11:15:11编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/11/27 12:17:00 -- If e.DataCol.Name = "文件夹编号转换_商品名称" Then
Dim Oldstr As String =e.DataRow("文件夹编号转换_商品名称")
Dim Newstr As String = ""
For i As Integer = Oldstr.Length - 1 To 0 Step - 1
If Asc(StrToNarrow(Oldstr.Chars(i))) < 0 AndAlso Oldstr.Chars(i) <> "】" AndAlso Newstr.Length < 10 Then
Newstr = Oldstr(i) & Newstr
End If
Next
Newstr = "" & NewStr & ""
\'e.DataRow("第六列")
e.DataRow("文件夹编号转换_后10位字符")="" & Newstr & ""
End If |
-- 作者:yangwenghd -- 发布时间:2023/2/6 11:18:00 -- 老师 可以这样判断吗? 判断 文件夹编号转换_商品名称这一列的第一个非字符,然后在把非字符的这边放到第二列,右边的字符放到第三列。 比如: 螺丝M30*5 然后螺丝(文字部分)放到第二列,M30*5(这里也有可能是φ等符号),放到第三列。 感谢 感谢
|
-- 作者:有点蓝 -- 发布时间:2023/2/6 11:29:00 -- Dim pattern As String = "[\\u4e00-\\u9fa5]" Dim txt As String = "螺丝M30*5" Dim str = System.Text.RegularExpressions.Regex.Replace(txt , pattern , "") Output.Show(str) Dim 中文 As String = txt.Replace(str, "") Output.Show(中文) |
-- 作者:yangwenghd -- 发布时间:2023/2/6 12:13:00 -- 老师 可以是先判断 这边的第一个文字吗?然后在执行文字的左边分一列,文字的右边分一列。不管右边还要文字没有,都放到右边,就以第一个字符为分界线。感谢 感谢 Dim pattern As String = "[\\u4e00-\\u9fa5]" Dim txt As String = e.DataRow("文件夹编号转换_商品名称") Dim str = System.Text.RegularExpressions.Regex.Replace(txt , pattern , "") e.DataRow("英文") = System.Text.RegularExpressions.Regex.Replace(txt , pattern , "") e.DataRow("中文") = txt.Replace(str, "") [此贴子已经被作者于2023/2/6 12:15:19编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/2/6 13:32:00 -- 第一个字符指什么?第一个非中文字符? |
-- 作者:yangwenghd -- 发布时间:2023/2/6 13:36:00 -- 对对对,我说错了 ,是一个非中文字符为接线,然后这个非中文字符的前面放一列,非中文字符和后面的非中文字符放一列。感谢老师 |
-- 作者:有点蓝 -- 发布时间:2023/2/6 13:51:00 -- Dim pattern As String = "[^\\u4e00-\\u9fa5]" Dim txt As String = "发顺丰螺丝911发光飞碟跟M30*5" Dim r As New System.Text.RegularExpressions.Regex(pattern) Dim str() As String = r.Split(txt) Dim 中文 As String = str(0) Output.Show(中文) Dim a As String = txt.Substring(中文.Length) pattern = "[\\u4e00-\\u9fa5]" a = System.Text.RegularExpressions.Regex.Replace(a , pattern , "") Output.Show(a)
|
-- 作者:yangwenghd -- 发布时间:2023/2/6 14:11:00 -- 谢谢老师 ,可以把右边的中文也显示出来吗 ? 就是比如 Dim txt As String = "发顺丰螺丝911发光飞碟跟M30*5" 中文显示:发顺丰螺丝 英文显示:911发光飞碟跟M30*5" 就是找出一个分界线(这个分界线以第一个非字符的前面为分界线) 分隔成两段,其他的什么都不用变,感谢老师 再麻烦麻烦你 感谢
[此贴子已经被作者于2023/2/6 14:15:54编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/2/6 14:17:00 -- 去掉选下面代码 pattern = "[\\u4e00-\\u9fa5]" a = System.Text.RegularExpressions.Regex.Replace(a , pattern , "") |