正则表达式:将输入中的最后 4 个数字替换为星号正则表达式

本文关键字:正则表达式 数字 替换 最后 输入 | 更新日期: 2023-09-27 18:32:00

我目前需要一些关于Automapper(C#)中的正则表达式的帮助。

我想用符号 * 替换最后 4 位(和另一个输入中的 2 位)数字。现在我只覆盖最后一个数字。

 .AfterMap((from, to) =>
                {
                    if (from.x!= null)
                        to.x= Regex.Replace(from.x, "[0-9]{2}$", "*");
                    if (from.y!= null)
                        to.y= Regex.Replace(from.y, "[0-9]{4}$", "*");
                })

请帮忙!

正则表达式:将输入中的最后 4 个数字替换为星号正则表达式

您的正则表达式很好,并且符合您想要的。 但是,在这两种情况下,您都只插入一个*。 用:

.AfterMap((from, to) =>
            {
                if (from.x!= null)
                    to.x= Regex.Replace(from.x, "[0-9]{2}$", "**");
                if (from.y!= null)
                    to.y= Regex.Replace(from.y, "[0-9]{4}$", "****");
            })

正如詹姆斯·索普(James Thorpe)所注意到的那样,唯一的问题是您的替换字符串。

因此,对于挑战:一种模式来统治所有

to.z = Regex.Replace(from.z, "[0-9]{2}(?=(?:[0-9]{2})?$)", "**");