用c#中的正则表达式查找字母,然后用大写字母表示字母,并按Shift键其他字符的形式

本文关键字:Shift 其他 字符 并按 然后 正则表达式 查找 大写字母 表示 | 更新日期: 2023-09-27 18:28:14

我想转换一个字符串m'anoj ku'mar m'a'nojManoj kUmar MAnoj我如何使用c#做到这一点

string convert(string text)
{
  string pattern = @"$1''";
  string repPattern =@"";
  string returnText = Regex.Replace(text, repPattern, pattern);
  return returnText;
}

repPattern的任务是什么?以获得结果

用c#中的正则表达式查找字母,然后用大写字母表示字母,并按Shift键其他字符的形式

尝试以下操作:

var input = @"m'anoj ku'mar m'a'noj";
var pattern = new Regex(@"([a-z])''");
var replaced = pattern.Replace(input, m => m.Groups[1].ToString().ToUpper());
Console.WriteLine(replaced);

更新

映射数字以转换按压形式:

string text= @"m'an1oj ku'mar m'a'no9j";
char[] shiftPressForms = ")!@#$%^&*(".ToCharArray();
Regex pattern = new Regex(@"([a-z])''");
Regex pattern_digit = new Regex(@"'d");
string replaced = pattern.Replace(text, m => m.Groups[1].ToString().ToUpper());
replaced = pattern_digit.Replace(replaced, m => shiftPressForms[int.Parse(m.Value)].ToString());
Console.WriteLine(replaced);