我承认正则表达式是一个奇怪的世界,我无法真正让我的头脑缠绕它.但我认为这个问题属于正则表达式世界.我想将"o'brian"等姓名改为"O'Brian"或"macdonald"改为"MacDonald"或"who-know"改为"Who-Knew"或"who know"改为"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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Jam*_*man 10
实际上并不确定你的Mac是否可行....例如,虽然麦克唐纳应该是麦当劳,但梅西夫人真的不想成为麦克伊夫人.如果它的公司名称怎么办?史密斯的机械,不想成为史密斯的MacHinery!
"O"前缀也可能存在问题.想想奥佩拉先生,或奥帕尔夫人!
使用Mac和Mc前缀的最佳方法是保存一个例外列表,您可以参考该列表.这些样式名称只有有限数量!
以下内容应该有助于开始:http: //dgmweb.net/genealogy/FGS/Indices/EveryNameIndex-Mc.shtml
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |