替换正则表达式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.Groups[2].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.Groups[1].Value + new string('*', m.Groups[2].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.Groups[1].Value + new string(newStr, m.Groups[2].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);

}

相关推荐
小白学大数据3 小时前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
△曉風殘月〆6 小时前
WPF MVVM入门系列教程(二、依赖属性)
c#·wpf·mvvm
逐·風8 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
m0_6569747411 小时前
C#中的集合类及其使用
开发语言·c#
九鼎科技-Leo11 小时前
了解 .NET 运行时与 .NET 框架:基础概念与相互关系
windows·c#·.net
九鼎科技-Leo14 小时前
什么是 ASP.NET Core?与 ASP.NET MVC 有什么区别?
windows·后端·c#·asp.net·mvc·.net
.net开发14 小时前
WPF怎么通过RestSharp向后端发请求
前端·c#·.net·wpf
小乖兽技术14 小时前
C#与C++交互开发系列(二十):跨进程通信之共享内存(Shared Memory)
c++·c#·交互·ipc
幼儿园园霸柒柒14 小时前
第七章: 7.3求一个3*3的整型矩阵对角线元素之和
c语言·c++·算法·矩阵·c#·1024程序员节
平凡シンプル17 小时前
C# EF 使用
c#