Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET正则表达式是否可以在没有.ToUpper()的情况下大写字母?_C#_.net_Regex_Adfs - Fatal编程技术网

C# .NET正则表达式是否可以在没有.ToUpper()的情况下大写字母?

C# .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

我试图用它来完成一个简单的任务:将一些文本大写。该语言没有像.ToUpper这样的通用字符串操作方法,但它有一个使用.NET正则表达式的宏

遗憾的是,.NET正则表达式不支持能够很好地完成这一任务的方法,例如s/[a-z]/\U\1/g


普通的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。