本帖最后由 邓建军 于 2013-5-15 09:04 编辑
222323@qq.com -->******@qq.com
tom@163.com -->***@163.com
jack520=@sina.com -->*******@sina.com
正则表达式替换,有什么好办法实现隐藏用户名,一个*代表一个字符 。除了我用的方法外,有没有更简单的方法,不通过for循环就能做出来。- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Text.RegularExpressions;
- namespace 隐藏邮箱用户名
- {
- public delegate string HideDelegate(string s);
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("请输入你的邮箱号。");
- string email = Console.ReadLine();
- string regEmail = @"(\w+)(@\w+(\.[a-zA-Z]+)+)";
- string lastEmailName = Regex.Replace(email, regEmail, "$2");//除用户名外的邮箱部分
- string userName=Regex.Replace(email, regEmail, "$1");//用户名
- HideDelegate hd = ChangeUserName;//使用委托
- userName = hd(userName);
- Console.WriteLine(userName + lastEmailName);
- Console.ReadKey();
- }
- static string ChangeUserName(string s)
- {
- string str = null;
- for (int i = 0; i < s.Length; i++)
- {
- str += "*";
- }
- return str;
- }
- }
- }
复制代码 |