以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎么判断字符串里的数字呢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118025)

--  作者:aidimeng
--  发布时间:2018/4/23 16:48:00
--  怎么判断字符串里的数字呢

 字符串:压榨玉米油3.5L*4

想提取下里面的数字部分,怎么实现啊

 

 

Dim reg As New Regex("\\d+")
 Dim m As Match = reg.Match("axd123.09")
 If m.Success Then
     Dim a As Double = m.Value
Output.Show(a)
 End If

计算结果是123

怎么样可以包含 整数 或小数啊

[此贴子已经被作者于2018/4/23 17:12:18编辑过]

--  作者:狐说八道
--  发布时间:2018/4/23 17:26:00
--  
Dim t As String
Dim s As String = "压榨玉米油3.5L*4"
For Each a As String In s
    If Char.IsDigit(a) Then
        t = t & a
    End If
Next
output.show(t)

--  作者:vbmic
--  发布时间:2018/4/23 17:42:00
--  
Dim reg As New Regex("\\d+[.]\\d+")
 Dim m As Match = reg.Match("axd123.09")
 If m.Success Then
     Dim a As Double = m.Value
Output.Show(a)
 End If
--  作者:有点甜
--  发布时间:2018/4/23 18:23:00
--  

Dim reg As New Regex("[0-9.]+")
Dim m As Match = reg.Match("axd123.09")
If m.Success Then
    Dim a As Double = m.Value
    Output.Show(a)
End If

 


--  作者:aidimeng
--  发布时间:2018/4/23 19:17:00
--  
十分感谢大家
--  作者:aidimeng
--  发布时间:2018/4/23 19:17:00
--  
谢谢甜老师
--  作者:aidimeng
--  发布时间:2018/4/23 20:50:00
--  

Dim 测试文本 = args(0)

Dim 匹配集合 = (New Regex("[0-9.]+")).Matches(测试文本)

Dim 结果列表 As New List(Of Decimal)

For Each 匹配 As Match In 匹配集合

    If IsNumeric(匹配.Value) Then 结果列表.Add(CDec(匹配.Value))

Next
Return 结果列表

 

第一次使用正则表达式,作为标记留念,谢谢各位