我想转换一个字符串
m\anoj ku\mar m\a\noj
到
Manoj kUmar MAnoj
我如何使用 C# 执行此操作
string convert(string text)
{
string pattern = @"$1\\";
string repPattern =@"";
string returnText = Regex.Replace(text, repPattern, pattern);
return returnText;
}
分配给 repPattern 的是什么?得到结果
最佳答案
尝试以下操作:
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);
更新
将数字映射到按下 shift 的形式:
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);
关于c# - c# 中的正则表达式找到字母然后\用大写字母作为字母和 Shift 按下其他字符的形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18328375/