以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何从一串文本中提取电话号码或手机号码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78633)

--  作者:农村人
--  发布时间:2015/12/14 0:28:00
--  如何从一串文本中提取电话号码或手机号码?
如何从一串文本中提取电话号码或手机号码?,文本如下:
无锡每天有大量到全国各种各地的回程车,如你有需要用车,请联系。 18012361955
专业调无锡.苏州及周边到全国各地9.6 13 17.5米回程车 有五年调车经验 司机熟 安全可靠,合作无忧.有货敬请联系 !! 调回程车 调回程车 18012361955
专业调无锡.苏州及周边到全国各地9.6 13 17.5米回程车 有五年调车经验 司机熟 安全可靠,合作无忧.有货敬请联系 ! 18012361955
无锡货运交易市场每天有大量回程车到全国各地 如你有需要用车,请联系 18012361955 18012361955
专业调无锡苏州到全国各地9.6 13 17.5米回程车 价格便宜 有货请联系 18012361955
专业调无锡.苏州及周边到全国各地13 17.5米回程车 有五年调车经验车源多 安全可靠,合作无忧.有货敬请联系 !! 调回程车 18012361955

希望单纯地提取联系方式

--  作者:hui986
--  发布时间:2015/12/14 1:56:00
--  

一个不太严谨的做法(供参考)

 

Dim str As String  = "请请18012361955联系18012361956请联系 18012361953"
For i As Integer = 0 To str.Length -1
    Dim mn As Integer = 0
    Dim 电话 As String = ""   
    If str.IndexOf("1",i) > 1 Then
        If str.Length - 12 > 0 Then
            电话 = str.SubString(str.IndexOf("1",i) ,11)
            For n As Integer = 0 To 10
                If Char.IsDigit(电话.Chars(n)) = False Then     ‘检证11位数字
                    i = i + n
                    Exit For
                Else
                    mn = mn + 1
                    i = i + 1
                   
                End If
            Next
            If mn = 11 Then
            Output.Show(电话)
            End If
        End If
    End If
    If str.Length - i < 11   Then
        Exit For
    End If
Next

[此贴子已经被作者于2015/12/14 2:00:14编辑过]

--  作者:lsy
--  发布时间:2015/12/14 7:51:00
--  
Dim s As String = "专业调无锡.苏州及周边到全国各地9.6 13 17.5米回程车 有五年调车经验 司机熟 安全可靠,合作无忧.有货敬请联系 !! 调回程车 调回程车 18012361955"
Output.Show(s.Split(" ")(s.Split(" ").Length - 1))

--  作者:Hyphen
--  发布时间:2015/12/14 8:55:00
--  
手机号码:
Dim pattern As String = "[1][358][0-9]{9}"
Dim txt = "地 如你有需要用车,请联系 18012361955 需要用车,请联系  18066322955"
Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)

For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
    Output.Show(match.Value )
Next

--  作者:农村人
--  发布时间:2015/12/15 11:11:00
--  
感觉感谢您的帮助、。
如果信息中也包含发如下内容。
 9.6→17.5米 回程车 装车就走 吨位不限 027-88127792
 0757-88522167

如何同时获取这种类型的号码?

--  作者:大红袍
--  发布时间:2015/12/15 11:15:00
--  

Dim pattern As String = "[1][358][0-9]{9}|[0][0-9]{2,3}-[0-9]{7,8}"
Dim txt = "地 如你有需要用车,请联系 18012361955 需要用车,请联系  027-88127792 0757-88522167"
Dim rgx = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)


For Each  match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
    Output.Show(match.Value )
Next


--  作者:hui986
--  发布时间:2015/12/15 15:45:00
--  
取用“正则”图片点击可在新窗口打开查看