
c# 屏蔽字符串中电话号码
如题,求这么一个方法电话号码可能不止一个,形式多样,可能有-(),等最好可扩展,如屏蔽qq、Email等怎么把中间部分号码用*代替,前后面各留几位数...
如题,求这么一个方法
电话号码可能不止一个,形式多样,可能有-(),等
最好可扩展,如屏蔽qq、Email等
怎么把中间部分号码用*代替,前后面各留几位数 展开
电话号码可能不止一个,形式多样,可能有-(),等
最好可扩展,如屏蔽qq、Email等
怎么把中间部分号码用*代替,前后面各留几位数 展开
4个回答
展开全部
当然用正则表达式了 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);
//符合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);
展开全部
比如匹配电话号码,假设号码长度至少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})?$
(?\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})?$
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用正则表达式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同上,正则是最方便的,扩展你加个正则就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询