以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎样删除掉字符中的中英文字符只留数字?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40544)

--  作者:mamuaiqing
--  发布时间:2013/9/23 2:55:00
--  怎样删除掉字符中的中英文字符只留数字?

如题,比如在命令窗口中Dim s As String ="删除中文abc123efg"
                             \'这里的代码要怎么写?
                              Output.Show(s)    命令窗口输出的是123其它字符全删了,请教老师怎么实现?


--  作者:y2287958
--  发布时间:2013/9/23 6:06:00
--  
循环判断
[此贴子已经被作者于2013-9-23 6:09:10编辑过]

--  作者:东坡一剑
--  发布时间:2013/9/23 6:46:00
--  

我的办法笨一点,你可以参考,希望专家还有更好的办法:

 

Dim s As String ="删除中文abc123efg"

dim lst as new list (Of string)

for i as integer = 0 to s.length - 1

     lst.add(s.substring(i,1)

next

for i as integer = 0 to lst.count - 1

     if char.isdigit(lst(i)) then

         s = s & lst(i)

     end if

next

s = s.trim()
Output.Show(s) 


--  作者:lsy
--  发布时间:2013/9/23 7:22:00
--  
Dim Oldstr As String ="删除中文abc123efg"
Dim Newstr As String
For Each s As String In Oldstr
    If Char.IsDigit(s) Then
        Newstr + = s
    End If
Next
Output.Show(Newstr)

--  作者:Bin
--  发布时间:2013/9/23 9:04:00
--  
Dim s As String ="删除中文abc123efg"
s=RegularExpressions.Regex.Match(s,"\\d+").value
Output.Show(s)

--  作者:lsy
--  发布时间:2013/9/23 9:28:00
--  
以下是引用Bin在2013-9-23 9:04:00的发言:
Dim s As String ="删除中文abc123efg"
s=RegularExpressions.Regex.Match(s,"\\d+").value
Output.Show(s)

还是表达式简洁,不过得费一番功夫,才能领会、熟练。


--  作者:mamuaiqing
--  发布时间:2013/9/23 15:33:00
--  
以下是引用lsy在2013-9-23 9:28:00的发言:

还是表达式简洁,不过得费一番功夫,才能领会、熟练。

呵呵,确实是,没学习过RegularExpressions看不懂代码意思,感谢各位老师的帮助