正则表达式:用特殊字符替换数字中间的数字

Ale*_*rt. 1 c# regex

我有很多输入(它的长度可能会有所不同)作为输入。

我需要一个正则表达式,该表达式将保留前3位数字和后3位数字不变,并将它们之间的所有数字替换为某些字符。输出的总长度应保持不变。

例如:

输入123456789123456

输出123xxxxxxxxx456

到目前为止,我已经能够通过使用将输入数字分为3组

^(\d{3})(.*)(\d{3})
Run Code Online (Sandbox Code Playgroud)

第二组是需要替换的组,因此它将类似于

$1 {Here goes the replacement of the 2 group} $3
Run Code Online (Sandbox Code Playgroud)

我正在努力更换:

Regex r = new Regex("^(\d{3})(.*)(\d{3})");
r.Replace(input,"$1 {Here goes the replacement of the 2 group} $3")
Run Code Online (Sandbox Code Playgroud)

我应该如何在这里写2组的替代品?

提前致谢。

Avi*_*Raj 5

您可以尝试下面的正则表达式,该表达式使用lookbehind和lookahead,

string str = "123456789123456";
string result = Regex.Replace(str, @"(?<=\d{3})\d(?=\d{3})", "x");
Console.WriteLine(result);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

输出:

123xxxxxxxxx456
Run Code Online (Sandbox Code Playgroud)

爱迪生

演示