Skip to main content
 首页 » 编程设计

c#之正则表达式每两个字符替换一次

2024年02月02日25telwanggs

我想知道如何每 2 位对字符串执行 Regex.Replace。 例如:如果用户键入 111213,我想将 11 替换为 c,将 12 替换为 o,将 13 替换为 m。

显然我之前已经为每个字母分配了值,我只是对正则表达式了解不够,无法告诉它每 2 位数字进行一次替换。

任何帮助或指向好文章的指针将不胜感激。

拉斐尔·鲁莱斯。

请您参考如下方法:

我根本不会尝试使用正则表达式。在我阅读它时,您只想取每两个字符并将它们替换为其他字符。像这样:

private static readonly Dictionary<string, string> Map 
    = new Dictionary<string, string> { 
    {"11", "c"}, 
    {"12", "o"}, 
    {"13", "m"} 
}; 
public static string Rewrite(string input) 
{ 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < input.Length; i += 2) 
    { 
        string value = input.Substring(i, 2); 
        sb.Append(Map[value]); 
    } 
    return sb.ToString(); 
}