gpt4 book ai didi

php - 给定大写名称转换为 Proper Case,处理 "O' Hara"、 "McDonald" "van der Sloot"等

转载 作者:可可西里 更新时间:2023-11-01 14:04:18 26 4
gpt4 key购买 nike

我得到了一个大写的名字列表。出于电子邮件中的称呼目的,我希望他们使用适当的大小写。

使用 PHP 的 ucwords 很容易做到.但我觉得我需要一些正则表达式函数来处理常见的异常,例如:

"O'Hara", "McDonald", "van der Sloot", etc

与其说我需要帮助来构建一个正则表达式语句来处理上面的三个示例(那会很好),不如说我不知道​​所有常见的异常可能是什么。

肯定有人以前遇到过这个问题,有任何指向已发布解决方案或您可以分享的东西的指针吗?

最佳答案

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

我宁愿使用不会影响其他人的东西。你怎么知道“MACDONALD”先生是否更喜欢“Macdonald”?

您正在纠正其他人的错误。如果无法更正来源,您可以使用如下内容:

<?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.
)
*/
?>

希望有用。

关于php - 给定大写名称转换为 Proper Case,处理 "O' Hara"、 "McDonald" "van der Sloot"等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com