Skip to main content
 首页 » 编程设计

c#之请帮助使用 o'brian 或 macdonald 等名称的正则表达式

2024年01月18日35jirigala

我承认正则表达式是一个奇怪的世界,我无法真正理解它。但是我有这个我认为属于正则表达式世界的问题。
我想将姓氏如“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