我承认正则表达式是一个奇怪的世界,我无法真正理解它。但是我有这个我认为属于正则表达式世界的问题。
我想将姓氏如“o'brian”更改为“O'Brian”或“macdonald”更改为“MacDonald”或“who-knew”更改为“Who-Knew”或“谁知道”更改为“Who Knew”
到目前为止,我只有....
setCaps("o'brian");
string setCaps(string s)
{
string result = Regex.Replace(s, @"\b[a-z]['a-z]\w+", delegate(Match match)
{
string ch = match.ToString();
return char.ToUpper(ch[0]) + ch.Substring(1);
});
return result;
}
谢谢
请您参考如下方法:
实际上不确定这是否适用于您的 Mac.... 例如,虽然 macdonald 应该是 MacDonald,但 Macey 夫人真的不想成为 MacEy 夫人。如果它的公司名称呢?史密斯机械,不想成为史密斯机械!
“O”前缀也可能有问题。考虑一下奥佩拉先生或奥帕尔夫人!
使用 Mac 和 Mc 前缀最好的办法是保存一个异常(exception)列表,您可以引用它。这些样式名称的数量有限!
以下应该有助于开始:
http://dgmweb.net/genealogy/FGS/Indices/EveryNameIndex-Mc.shtml
