以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何将字符串里面的数字提取出来,并相加得到一个值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118945)

--  作者:ZJZK2018
--  发布时间:2018/5/14 21:20:00
--  如何将字符串里面的数字提取出来,并相加得到一个值
老师:
如题

Dim s1 As String = "施工人员:钢筋工 5  人,木工  27 人 水电工  16 人 操作手:3 人"
Dim s2 As String
For Each c As Char In s1
    If Char.IsNumber(c) Then
        s2 = s2 & c
    End If
Next
output.show(s2)

得到的结果是:527163,而我需要的是:5+27+16+3 = 51


--  作者:有点蓝
--  发布时间:2018/5/14 21:26:00
--  
Dim s As String="施工人员:钢筋工 5  人,木工  27 人 水电工  16 人 操作手:3 人"
Dim p As String = "[^\\d+]"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(s)
Dim sum As Integer
For Each a As String In str
Output.Show(a)
    sum += val(a)
Next
msgbox(sum )