我想使用正则表达式而不是string.replace()来获取字符串的前6个字符和相同字符串的最后4个字符,并将其替换为另一个字符:&
。字符串总是带有16个字符。我做了一些研究,但我以前从未使用过正则表达式。感谢
答案 0 :(得分:7)
如果您更喜欢使用正则表达式,则可以使用以下内容。点.
将匹配除换行序列之外的任何字符,因此您可以指定{n}
以恰好匹配n次并使用字符串锚点的开头/结尾。
String r = Regex.Replace("123456foobar7890", @"^.{6}|.{4}$",
m => new string('&', m.ToString().Length));
Console.WriteLine(r); //=> "&&&&&&foobar&&&&"
如果您想反转逻辑,请替换字符串的中间部分,您可以使用Positive Lookbehind。
String r = Regex.Replace("123456foobar7890", @"(?<=^.{6}).{6}",
m => new string('&', m.ToString().Length));
Console.WriteLine(r); //=> "123456&&&&&&7890"