c# 屏蔽字符串中电话号码

如题,求这么一个方法电话号码可能不止一个,形式多样,可能有-(),等最好可扩展,如屏蔽qq、Email等怎么把中间部分号码用*代替,前后面各留几位数... 如题,求这么一个方法

电话号码可能不止一个,形式多样,可能有-(),等

最好可扩展,如屏蔽qq、Email等
怎么把中间部分号码用*代替,前后面各留几位数
展开
 我来答
jnc911
2009-11-15 · TA获得超过192个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:0
展开全部
当然用正则表达式了 Text.RegularExpressions

//符合XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
Regex rx = new Regex(@"(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}",
RegexOptions.Compiled | RegexOptions.IgnoreCase);

//原字符串
string text = "Hello wold 123-1681111 Good morning 1317878 The end";
//获得匹配项集合
MatchCollection matches = rx.Matches(text);

Console.WriteLine("{0} matches found.", matches.Count);

int count = 0;
foreach (Match match in matches)
{
string word = match.Groups["word"].Value;

//删除匹配项
text = text.Remove(match.Index - count, match.Length);
count += match.Length;
}
Console.WriteLine(text);
miniappe8t3L68TSCbzK
2009-11-15 · TA获得超过556个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:226万
展开全部
比如匹配电话号码,假设号码长度至少5位,比如: (86)-025-88888888

(?\d{2})?-?\d{3}?-?\d{5}

匹配QQ,假设号码范围是大于5位的整数

\d{5}

匹配email

^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洪腾吟
2009-11-15 · TA获得超过1738个赞
知道小有建树答主
回答量:573
采纳率:0%
帮助的人:738万
展开全部
利用正则表达式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yizusong
2009-11-15 · TA获得超过3046个赞
知道大有可为答主
回答量:4516
采纳率:0%
帮助的人:4566万
展开全部
同上,正则是最方便的,扩展你加个正则就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式