替换正则表达式c#

1、替换最后一个字符

dto.ContactPerson = dto.ContactPerson.ReplaceName("*");

/// <summary>

/// 替换最后一个字符串

/// </summary>

/// <param name="oldStr"></param>

/// <param name="newStr"></param>

/// <returns></returns>

public static string ReplaceName(this string oldStr, string newStr)

{

string pattern = @"(.)$";

string result = Regex.Replace(oldStr, pattern, newStr);

return result;

}

2、替换除第一字符外其他都替换成*

**注意:**new string('*', m.Groups2.Length) 是表示根据第一个字符后又几个字符来生成相应得*号来替换

dto.ContactPerson = dto.ContactPerson.ReplaceName();

/// <summary>

/// 替换第一个字符后得其他字符串

/// </summary>

/// <param name="oldStr"></param>

/// <param name="newStr"></param>

/// <returns></returns>

public static string ReplaceStr(this string oldStr)

{

// 正则表达式:匹配第一个字符之后的所有字符

string pattern = "(.)(.*)";

string result = Regex.Replace(oldStr, pattern, m => m.Groups1.Value + new string('*', m.Groups2.Length));

return result;

}

或则自定义替换成你想要得字符

dto.ContactPerson = dto.ContactPerson.ReplaceStr('-');

/// <summary>

/// 替换第一个字符后得其他字符串

/// </summary>

/// <param name="oldStr"></param>

/// <param name="newStr"></param>

/// <returns></returns>

public static string ReplaceStr(this string oldStr, char newStr)

{

// 正则表达式:匹配第一个字符之后的所有字符

string pattern = "(.)(.*)";

string result = Regex.Replace(oldStr, pattern, m => m.Groups1.Value + new string(newStr, m.Groups2.Length));

return result;

}

3、隐藏手机号

dto.ContactNumber = PhoneExtensions.GetPhoneHidden(demand.ContactNumber);

/// <summary>

/// 获取隐藏中间四位的手机号码

/// </summary>

/// <param name="phone"></param>

/// <returns></returns>

public static string GetPhoneHidden(this string phone, bool isValidateTelePhone = true)

{

//如果固化则不隐藏

if (isValidateTelePhone && IsTelePhoneNumber(phone))

{

return phone;

}

return Regex.Replace(phone, "(\\d{3})\\d{4}(\\d{4})", "1\*\*\*\*2");

}

/// <summary>

/// 验证固定电话号码

/// 3位或4位区号;区号可以用小括号括起来;区号可以省略;区号与本地号间可以用减号或空格隔开;可以有3位数的分机号,分机号前要加减号

/// </summary>

/// <param name="input">待验证的字符串</param>

/// <returns>是否匹配</returns>

public static bool IsTelePhoneNumber(string input)

{

string pattern = @"^(((0\d2|0\d{2})- ?)?\d{8}|((0\d3|0\d{3})- ?)?\d{7})(-\d{3})?$";

return IsMatch(input, pattern);

}

相关推荐
Scout-leaf1 天前
C#摸鱼实录——IoC与DI案例详解
c#
咕白m6251 天前
使用 C# 在 Excel 中应用多种字体样式
后端·c#
Artech2 天前
[MAF预定义的AIContextProvider-02]AgentSkillsProvider——将Agent Skills引入MAF
ai·c#·agent·agent skills·maf
2601_962072552 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
踏着七彩祥云的小丑3 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
m0_547486663 天前
《C#语言程序设计与实践》 全套PPT课件
c语言·c#·c语言程序设计
bosins3 天前
密码复杂度验证正则表达式
正则表达式
叶帆3 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
IT方大同3 天前
(嵌入式操作系统)信号量
嵌入式硬件·c#
z落落3 天前
C# FileStream文件流读取文件
开发语言·c#