首页 > 解决方案 > 如何使用 C# 从名称中删除首字母

问题描述

我需要从名字中删除首字母,例如,

KAM Paul Silvester - > 预期输出: Paul Silvester

我找到了使用 java 的解决方案,但我需要使用 C#

public static void main(String args[])
{
    String input = "K A M Paul Silvester";
    input = input.replaceAll("\\b[A-Z]+(?:\\.|\\s+|$)", "").trim();
    System.out.println(input);
}

我还需要检查输入名称是否有效,如果使用首字母方法的用户输入名称应返回 false,否则返回 true。我该怎么做

public bool checkName(string name)
{

}

标签: c#regexvalidation

解决方案


我认为您需要一个正则表达式来找到首字母缩写和全名,如果是这样,我建议您使用这样的正则表达式:

var match = Regex.Match(input, @"(?<initials>([A-Z] )+)?(?<name>.+)");
if (match.Success)
{
    var initials = match.Groups["initials"].Value;
    var name = match.Groups["name"].Value;

    var hasNotInitials = string.IsNullOrWhiteSpace(initials);
}

C# 演示 I
C# 演示 II


推荐阅读