以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]怎样去除单元格中的数字字母符号  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=125307)

--  作者:qjm107
--  发布时间:2018/9/25 22:48:00
--  [求助]怎样去除单元格中的数字字母符号
各位专家们
      现在我想请教,在我上传的附件中,混杂地址列含有字母数字及其他符号,怎样在对应的全新地址列中,把混杂地址中的字母数字符号全部去除,只保留汉字?

--  作者:qjm107
--  发布时间:2018/9/25 22:49:00
--  
各位专家们
      现在我想请教,在我上传的附件中,混杂地址列含有字母数字及其他符号,怎样在对应的全新地址列中,把混杂地址中的字母数字符号全部去除,只保留汉字?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:去除字母数字符号.table


--  作者:有点蓝
--  发布时间:2018/9/25 23:13:00
--  
datacolchanged事件

If e.DataCol.Name = "混杂地址" Then
    If e.NewValue > "" Then
        Dim pattern As String = "[^[\\u4e00-\\u9fa5]*]*"
        e.DataRow("全新地址") = System.Text.RegularExpressions.Regex.Replace(e.NewValue, pattern ,"")
    Else
        e.DataRow("全新地址") = Nothing
    End If
End If

--  作者:qjm107
--  发布时间:2018/9/30 21:21:00
--  
有点蓝
    你好,请问上面代码中的^[\\u4e00-\\u9fa5]*表示什么?

--  作者:有点甜
--  发布时间:2018/10/4 10:47:00
--  
以下是引用qjm107在2018/9/30 21:21:00的发言:
有点蓝
    你好,请问上面代码中的^[\\u4e00-\\u9fa5]*表示什么?

 

表示中文字符的一个集合

 

http://caibaojian.com/zhongwen-regexp.html

 

https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

 


--  作者:qjm107
--  发布时间:2018/10/8 22:06:00
--  
谢谢你,知道了,但现在我又有一个新问题了,如在我上传的附件的表B中,有“价格”“价格数字”两列,怎样把价格中的汉字去掉,也就是只把价格中的数字提取出来,相应地放入“价格数字”一列,我写的代码如下,但却实现不了,请问错误出在哪儿?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:去除字母数字符号.table



If e.DataCol.Name = "价格" Then
    If e.NewValue > "" Then
        Dim pattern As String = "[^\\x00-\\xff]"
        e.DataRow("价格数字") = System.Text.Select.Substring(e.NewValue, pattern ,"")
    Else
        e.DataRow("价格数字") = Nothing
    End If
End If

--  作者:qjm107
--  发布时间:2018/10/8 22:10:00
--  
代码也是写入datacolchanged事件中的
--  作者:有点蓝
--  发布时间:2018/10/8 22:14:00
--  
Dim pattern As String = "[\\u4e00-\\u9fa5]"
--  作者:qjm107
--  发布时间:2018/10/8 22:28:00
--  
你好,有点甜,在我上传的附件的表C中,有“价格”“价格数字”——“元”“角”“分”多层表头的三列,请问怎样把价格列中的数字,对应的提取到元角分列中?我模仿
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:去除字母数字符号.table

写出的代码如下,但结果出不来,请问错误在哪儿?

For Each r As Row In Tables("表C").rows
    If r.isnull("价格") = False
        Dim s As String = r("价格")
        Dim p1 As String = "[""].*元"
        
Dim p2 As String = "[元].*角"
        Dim p3 As String = "[角].*分"
Dim rgx = new System.Text.RegularExpressions.Regex(p1,p2, p3,  System.Text.RegularExpressions.RegexOptions.IgnoreCase)
        Dim res As String = rgx.Match(s).Value
        r("价格数字_元") = res.Replace("","").Replace("元","")
        
r("价格数字_角") = res.Replace(""元"").Replace("角","")
        r("价格数字_分") = res.Replace(""角"").Replace("分","")
End If
Next

--  作者:有点蓝
--  发布时间:2018/10/8 22:45:00
--  
Dim s As String = "3元5角2分"
Dim ar() As String = s.Split(new Char(){"元","角","分"})
msgbox(ar(0))
msgbox(ar(1))
msgbox(ar(2))