我承认正则表达式是一个奇怪的世界,我还没能真正理解它。但是我有这个问题,我认为它属于正则表达式的范畴。我想把姓氏如“O‘’Brian”改成“O‘’Brian”或"macdonald“改成"MacDonald”或"who-knew“改成"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;
}谢谢
发布于 2009-08-24 12:34:38
我不确定这对你的Mac来说是不可能的。例如,虽然macdonald应该是MacDonald,但MacEy夫人真的不想成为Macey夫人。如果它的公司名称呢?史密斯的机器,不想成为史密斯的Machinery!
"O“前缀也可能有问题。想想O‘’Pera先生,或者O‘’Pal夫人!
对Mac和Mc前缀做的最好的事情是保存一个例外列表,您可以参考它。这些样式名称的数量是有限的!
以下内容应该有助于入门:http://dgmweb.net/genealogy/FGS/Indices/EveryNameIndex-Mc.shtml
https://stackoverflow.com/questions/1322079
复制相似问题