首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给定大写名称转换为大小写,处理“O‘’Hara”、"McDonald“、"van der Sloot”等

给定大写名称转换为大小写,处理“O‘’Hara”、"McDonald“、"van der Sloot”等
EN

Stack Overflow用户
提问于 2012-07-17 19:09:57
回答 2查看 3.5K关注 0票数 5

我得到了一份大写名字的清单。为了在电子邮件中敬礼的目的,我希望他们是适当的外壳。

使用PHP的字字非常容易。但是我觉得我需要一些regex函数来处理常见的异常,例如:

“O‘’Hara”、"McDonald“、"van der Sloot”等

我并不需要帮助构建regex语句来处理上面的三个示例(这会很好),因为我不知道所有常见的异常可能是什么。

肯定有人曾经面对过这个问题,任何关于已发表的解决方案的建议,或者你可以分享的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-17 23:45:25

在简短的列表中使用正则表达式可能很容易,但如果必须处理数百或数千条记录,则很难做到防弹。

我宁愿用不会影响别人的东西。你怎么知道如果先生。“麦克唐纳”更喜欢“麦当劳”?

你在纠正别人的错误。如果无法更正源,则可以使用以下内容:

代码语言:javascript
复制
<?php

$provided_names = array(
  "SMITH",
  "O'HARA",
  "MCDONALD",
  "JONES",
  "VAN DER SLOOT",
  "MACDONALD"
);

$corrected_names = array(
  "O'HARA"        => "O'Hara",
  "MCDONALD"      => "McDonald",
  "VAN DER SLOOT" => "van der Sloot"
);

$email_text = array();

foreach ($provided_names as $provided_name)
{
  $provided_name = !array_key_exists($provided_name, $corrected_names) 
    ? ucwords(strtolower($provided_name)) 
    : $corrected_names[$provided_name];
  $email_text[]  = "{$provided_name}, your message text.";
}

print_r($email_text);

/* output:
Array
(
  [0] => Smith, your message text.
  [1] => O'Hara, your message text.
  [2] => McDonald, your message text.
  [3] => Jones, your message text.
  [4] => van der Sloot, your message text.
  [5] => Macdonald, your message text.
)
*/
?>

我希望它有用。

票数 2
EN

Stack Overflow用户

发布于 2016-03-22 11:09:14

我为此编写了一个小库:https://github.com/tamtamchik/namecase,您可以用作曲家安装它。

对于您的输入,它使用以下代码生成所需的内容:

代码语言:javascript
复制
<?php

require_once 'vendor/autoload.php'; // Composer autoload

$arr = ["O'HARA", "MCDONALD", "VAN DER SLOOT"];

foreach ($arr as $name) {
    echo $name . ' => ' . str_name_case($name) . PHP_EOL;
}

调用函数str_name_case,该函数随库附带在任何名称字符串上,它将被转换为适当的大小写。对于您的示例,输出将变成:

奥哈拉=> O‘’Hara 麦当劳=> MCDONALD 范德斯鲁特=>范德斯洛

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11529213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档