正则表达式获取字符串的前6个和后4个字符

时间:2014-09-09 15:06:07

标签: c# regex

我想使用正则表达式而不是string.replace()来获取字符串的前6个字符和相同字符串的最后4个字符,并将其替换为另一个字符:&。字符串总是带有16个字符。我做了一些研究,但我以前从未使用过正则表达式。感谢

1 个答案:

答案 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"