【发布时间】:2022-01-03 16:37:26
【问题描述】:
在设置一个人的姓氏时(我知道这是一项糟糕的工作),我希望将以下任何单词组合成小写第二个匹配项: 范,登,德,在,德,het。 如果在 '-'(组合的姓氏)之后再次发生,则重复此模式。
想要的结果:
范登布鲁克 => 范登布鲁克
Derksen-van 't Schip => Derksen-Van't Schip
在 Het Lid-Van De Boer => 在 Het Lid-Van de Boer
我尝试使用下面的代码将 ' 之后的首字母大写和小写。然而,使用正则表达式创建上述结果对我来说仍然是一座遥远的桥梁。
var formattedLastName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(lastName);
formattedLastName = Regex.Replace(formattedLastName, @"('\w\b)", (Match match) => match.ToString().ToLower());
【问题讨论】:
-
您的第二个示例与您的问题标题和您的一般描述不符。
-
你有名单吗?如果您想匹配
In Het Lid更改为In het Lid您必须先匹配它。但是你怎么知道这是不是一个名字,而In het holst van de nacht不是一个名字呢? -
谢谢第四只鸟。这是一个名为 lastnames 的(自定义)人员实体的属性,所以我知道人们会输入他们的姓氏。
标签: c# regex uppercase lowercase