13044499908;王;Admin;怎么提取数字??
13044499908;王;Admin; 在这个字符串中怎么提取出电话号码?
[解决办法]
给你一个完整的代码,区分并整理了里面的移动连通小灵通
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text.RegularExpressions;using System.IO;public partial class dotext_tel : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { TD1.Visible = true; TD2.Visible = true; } } protected void Button1_Click(object sender, EventArgs e) { File.AppendAllText(Server.MapPath("/") + "upload/zhengli/原文件" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt", TextBox1.Text); string otel = TextBox1.Text; //string ntel = ""; string onetel = ""; string etel = ""; string quhao = TextBox4.Text.Trim(); string yidong = ""; string liantong = ""; string xiaolingtong = ""; string[] thetel = otel.Split(new string[] { "\r\n", ",", "、", "\\", "/", " ", "(", ")", ";", ":" }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < thetel.Length; i++) { onetel = thetel[i].Trim(); if (Regex.IsMatch(onetel, @"^1[3,5][0-9]{9}$"))//标准手机号码 { if (isliantong(onetel)) { liantong = liantong + onetel + "\r\n"; } else { yidong = yidong + onetel + "\r\n"; } } else if (Regex.IsMatch(onetel, @"^\+861[3,5][0-9]{9}$"))//不标准手机号码,带+86的 { onetel = onetel.Substring(4); if (isliantong(onetel)) { liantong = liantong + onetel + "\r\n"; } else { yidong = yidong + onetel + "\r\n"; } } else if (Regex.IsMatch(onetel, @"^01[3,5][0-9]{9}$"))//0开头的手机号码 { onetel = onetel.Substring(2); if (isliantong(onetel)) { liantong = liantong + onetel + "\r\n"; } else { yidong = yidong + onetel + "\r\n"; } } else//手机号码判断完毕后,其他的为小灵通号码 { if (Regex.IsMatch(onetel, @"^0[1-9][0-9]{8,10}$"))//带区号的小灵通号码 { xiaolingtong = xiaolingtong + onetel + "\r\n"; } else if (Regex.IsMatch(onetel, @"^0[1-9][0-9]{1,2}[\-][1-9][0-9]{6,7}$"))//带-的号码 { xiaolingtong = xiaolingtong + onetel.Replace("-", "") + "\r\n"; } else if (Regex.IsMatch(onetel, @"^[1-9][0-9]{6,7}$"))//不带区号的小灵通号码(7或8位数字) { if ((onetel.Length + quhao.Length) == 10)//区号+小灵通号码等于10位不存在的号码 { etel = etel + onetel + "\r\n"; } else { xiaolingtong = xiaolingtong + quhao + onetel + "\r\n"; } } else if (Regex.IsMatch(onetel, @"^1060[1-9][0-9]{8,10}$"))//带106前缀的小灵通号码 { xiaolingtong = xiaolingtong + onetel.Substring(4) + "\r\n"; } else if (Regex.IsMatch(onetel, @"^\+861060[1-9][0-9]{8,10}$"))//带+86106前缀的小灵通号码 { xiaolingtong = xiaolingtong + onetel.Substring(7) + "\r\n"; } else//不规则的号码 { if (onetel.Length > 1)//只对大于3位的做处理,过滤掉无内容的项 { etel = etel + thetel[i].Trim() + "\r\n"; } } } //else if(Regex.IsMatch(onetel, //if (onetel.Length == 11) //{ // //} //else if (onetel.Length == 8) //{ // ntel = ntel + "027" + thetel[i].Trim() + "\r\n"; //} //else //{ // //} } File.AppendAllText(Server.MapPath("/") + "upload/zhengli/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt", "移动" + yidong + "联通" + liantong + "小灵通" + xiaolingtong); TextBox2.Text = yidong; TextBox3.Text = etel; TextBox5.Text = liantong; TextBox6.Text = xiaolingtong; Label2.Text = yidong.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length.ToString(); Label3.Text = liantong.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length.ToString(); Label4.Text = xiaolingtong.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).Length.ToString(); Label1.Text = Convert.ToString(Convert.ToInt32(Label2.Text) + Convert.ToInt32(Label3.Text) + Convert.ToInt32(Label4.Text)); } //判断是否连通号码 public bool isliantong(string onetel) { return Regex.IsMatch(onetel, @"^13[0,1,2,3][0-9]{8}$|^15[1,2,3,5,6][0-9]{8}$"); }}