Regex获取字符串的前6个和后4个字符

本文关键字:4个 字符 6个 获取 字符串 Regex | 更新日期: 2023-09-27 18:21:09

我想使用regex而不是string.replacement()来获取字符串的前6个字符和同一字符串的最后4个字符,并用另一个字符替换它:例如&。字符串总是包含16个字符。我正在做一些研究,但我以前从未使用过regex。感谢

Regex获取字符串的前6个和后4个字符

如果您喜欢使用正则表达式,可以使用以下内容。点.将匹配除换行序列之外的任何字符,因此您可以指定{n}精确匹配n次,并使用字符串锚的开始/结束。

String r = Regex.Replace("123456foobar7890", @"^.{6}|.{4}$", 
                m => new string('&', m.ToString().Length));
Console.WriteLine(r); //=> "&&&&&&foobar&&&&"

如果要反转逻辑,替换字符串的中间部分,可以使用Positive Lookbacking。

String r = Regex.Replace("123456foobar7890", @"(?<=^.{6}).{6}",
                m => new string('&', m.ToString().Length));
Console.WriteLine(r); //=> "123456&&&&&&7890"