从html中提取手机号码,C#从字符串中提取电话号码、手机号码

C#程序目的:从一堆字符串中提取电话号码、手机号码,要求字符串中的号码以非数字字符分割。原理:利用正则表达式提取纯数字字符串数组,然后利用长度等号码特征,筛选过滤。

代码:

//思路仅供参考

//nums为输入字符串;isMobile为是否判断为手机号码

public static string TelNumFilter(string nums, bool isMobile)

{

nums = Regex.Replace(nums, "[^0-9]+", ",");

StringBuilder rsSb = new StringBuilder(",");

string[] numAry = nums.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

for (int i = 0; i < numAry.Length; i++)

{

if (numAry[i].Length < 5)

continue;

if (isMobile)

{

while (numAry[i].StartsWith("0"))

numAry[i] = numAry[i].Substring(1);

if (numAry[i].Length == 11 && int.Parse(numAry[i].Substring(0, 2)) > 10 && int.Parse(numAry[i].Substring(0, 2)) < 20 && rsSb.ToString().IndexOf("," + numAry[i] + ",") < 0)

rsSb.Append(numAry[i]).Append(",");

}

else if (rsSb.ToString().IndexOf("," + numAry[i] + ",") < 0)

rsSb.Append(numAry[i]).Append(",");

}

return rsSb.ToString().Trim(',');

}