C# .NET正则表达式是否可以在没有.ToUpper()的情况下大写字母?
我试图用它来完成一个简单的任务:将一些文本大写。该语言没有像.ToUpper这样的通用字符串操作方法,但它有一个使用.NET正则表达式的宏 遗憾的是,.NET正则表达式不支持能够很好地完成这一任务的方法,例如s/[a-z]/\U\1/gC# .NET正则表达式是否可以在没有.ToUpper()的情况下大写字母?,c#,.net,regex,adfs,C#,.net,Regex,Adfs,我试图用它来完成一个简单的任务:将一些文本大写。该语言没有像.ToUpper这样的通用字符串操作方法,但它有一个使用.NET正则表达式的宏 遗憾的是,.NET正则表达式不支持能够很好地完成这一任务的方法,例如s/[a-z]/\U\1/g 普通的Regex.Replacestring、string、string命令是否可以在不使用.ToUpper之类的命令的情况下大写字母?我不知道在.NET中的表达式中有什么简单的方法可以做到这一点,但是您可以在调用Regex.Replace时使用MatchEva
普通的Regex.Replacestring、string、string命令是否可以在不使用.ToUpper之类的命令的情况下大写字母?我不知道在.NET中的表达式中有什么简单的方法可以做到这一点,但是您可以在调用Regex.Replace时使用MatchEvaluator lambda,类似于这里所描述的:
正如科林所说,MatchEvaluator是你最好的选择。您可以这样做来大写语句的第一个字母:
var s = System.Text.RegularExpressions.Regex.Replace
("capitalise the first letter of this sentence.", "(.*)",
delegate(System.Text.RegularExpressions.Match m) {
return (m.Value.Length > 0 ? m.Value.Substring
(0, 1).ToUpper() : "") + (m.Value.Length > 1 ? m.Value
.Substring(1, m.Value.Length-1) : "");
});
没有
看。仅支持以下替换元素:$number、${name}、$$、$&、$`、$'、$+、$\。您不能转换元素、使用条件或类似的内容。问题:该语言没有.ToUpper之类的通用字符串操作方法问题:该语言没有.ToUpper之类的通用字符串操作方法。链接问题使用.ToUpper.Karl,这是因为我所说的是正确的答案;您不能在.NET中的表达式本身中执行此操作。但是,您可以通过匹配计算器lambda在函数调用中执行此操作,是的,其中涉及到.ToUpper,但至少在单个正则表达式函数调用中,而不是在多步骤过程中。你也可以实现一个变通方法,以不同的方式处理touper,但否则OP可能会走运。不,正确的答案是,在他的约束范围内,不能使用regex来完成。如果他可以为.ToUpper编写自己的字符串操作,那么他可能根本不需要正则表达式。我已经说过,我认为在.Net的表达式中不可能这样做。出于礼貌,我提出了一个可能的替代方案,以防万一。不管他使用的API是否支持,我不知道,但这是一个调查的途径,希望他不会完全失去选择。顺便说一句,@nzpcmad是的,我认为这就是我们最终必须做的:用我们需要的字符串操作函数创建自定义属性存储DLL。