第n次出现大写字母后的c#regex
我在C#中的正则表达式方面遇到了困难。 我有一个名称和姓氏的连接字符串,只需要名称和姓氏的第一个字母:第n次出现大写字母后的c#regex,c#,.net,regex,C#,.net,Regex,我在C#中的正则表达式方面遇到了困难。 我有一个名称和姓氏的连接字符串,只需要名称和姓氏的第一个字母: string input = "NameSurname"; string output = "NSurname"; 所以基本上它总是输入字符串的第一个字母,加上第二个大写字母之后的字母 提前感谢您的帮助。您必须使用正则表达式吗?使用Linq可能更容易 例如: var charsFromSecondUppercaseChar = input.Skip(1).SkipWhile(c =>
string input = "NameSurname";
string output = "NSurname";
所以基本上它总是输入字符串的第一个字母,加上第二个大写字母之后的字母
提前感谢您的帮助。您必须使用正则表达式吗?使用Linq可能更容易 例如:
var charsFromSecondUppercaseChar = input.Skip(1).SkipWhile(c => !char.IsUpper(c));
string output = input[0] + new string(charsFromSecondUppercaseChar.ToArray());
我不知道为什么人们对这些帖子投反对票 试试这个
var name = Regex.Replace("NameSurname", @"^(\w)[^A-Z]*(.*)", "$1$2")
^(\w)匹配第一个字符并将其保留在$1中
[^A-Z]*匹配任何不是大写字母的后续字符
(*)匹配所有后续字符并将其保留在$2中
因此,我们用$1=“N”+$2=“姓氏”替换“nameurname”,不知道是谁对答案投了反对票,但如果他们解释了答案的错误,肯定会有所帮助。@MatthewWatson 5年36k。。。这不明显吗?所以不是一个雷格克斯机械土耳其人。问题是懒惰的,这样的回答只会助长懒惰。这里没有编程问题,也没有解决方案——没有教学,没有学习,没有解释,也没有帮助将来遇到类似问题的人。一路上都是废话——“为我做我的工作”。@J。。。我没有说我不知道原因,但投反对票的不是我,所以不由我来解释。我只是指出,这对那些已经5年没有来过这里的人来说是有用的。你能看出其中的区别吗?我把这个网站看作是一个帮助和教育人们的地方,而不是默默地斥责他们不知道所有的规则……谢谢@MathewWatson。你说得对——建设性的评论比否决票有用得多。在理解了这个问题后,我修改了我的答案,使之具有启发性。