我有一个c#代码片段,它从一个模型(CustomerName)中提取一个字符串,并将全名替换为首字母。例如“John Doe”=“JD”。它工作得很好。问题是,数字和特殊字符会使它出错。例如“1234 4321”=“1234 4321”。或者“#John Doe”=“#John Doe”。
我需要帮助调整代码,使它在字符串的两个一半的第一个字符,而不管字符类型。
所以,“#无名氏”我会选“#D”。“1234 4321”我会选“14”
var initials = new Regex(@"(\b[a-zA-Z])[a-zA-Z]* ?");
model.Customerinitials = initials.Replace(model.CustomerName, "$1");
2条答案
按热度按时间4uqofj5v1#
你可以试试这个片段
演示:https://regex101.com/r/hdPsvE/1
cgvd09ve2#
不知道我是否理解了你的意思,但是这个正则表达式会捕获第一个字符和白色后面的第一个字符
^(.)\S+\s(.)