替换正则表达式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);

}

相关推荐
SkyrimCitadelValinor4 小时前
c#中让图片显示清晰
开发语言·c#
爱吃香蕉的阿豪5 小时前
SignalR 全解析:核心原理、适用场景与 Vue + .NET Core 实战
vue.js·microsoft·c#·.netcore·signalr
@蓝莓果粒茶7 小时前
LeetCode第350题_两个数组的交集II
c++·python·学习·算法·leetcode·职场和发展·c#
9 小时前
3D碰撞检测系统 基于SAT算法+Burst优化(Unity)
算法·3d·unity·c#·游戏引擎·sat
「QT(C++)开发工程师」11 小时前
Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)
c++·qt·c#·visual studio
旭日东升的xu.15 小时前
Python(09)正则表达式
正则表达式
中游鱼19 小时前
如何序列化和反序列化动态 XmlElement ?
windows·microsoft·c#
唐青枫1 天前
C#.NET dapper 详解
c#·.net
死也不注释1 天前
【鸡零狗碎记录】
unity·c#
Maybe_ch1 天前
.NET-键控服务依赖注入
开发语言·c#·.net