我正在尝试使用RegEx改进代码。基本上我有一些模式,我需要用相同的模式替换,但使用大写。
例如:
“一个”
到
“一个”
另一种模式
“'一个”
到
“'A”
我对正则表达式有一点了解,但我不知道用大写字母替换相同的内容。
答案 0 :(得分:2)
Cyral说:
var str = "hello.a.world";
str = Regex.Replace(str, @'\.[a-z]\.', x => x.Value.ToUpper());
//str == "hello.A.world"
This tutorial是.NET正则表达式引擎和正则表达式的绝佳参考。
Expresso是一个很棒的工具,我在使用正则表达式时经常使用它。它将说明正则表达式的作用,并允许您在示例文本上进行测试。它也使用与.NET相同的正则表达式引擎,因此如果你的表达式在Expresso中有效,它将在C#中工作。
编辑:为了清楚起见,Cyral的回答是正确的,我只是想确保将这些链接添加到页面上,因为它们非常有用。
答案 1 :(得分:0)
您不需要使用正则表达式,只需使用String.ToUpper
string str = ".a.";
str = str.ToUpper();
编辑:要仅替换模式,请在匹配项上运行一个函数:(其中[a-z]
是您自己的正则表达式)
str = Regex.Replace(str, @"[a-z]", s => s.Value.ToUpper());