gpt4 book ai didi

MYSQL - 使用分隔符格式化名称字符串

转载 作者:行者123 更新时间:2023-11-29 11:14:47 24 4
gpt4 key购买 nike

我想在 SQL INSERT 语句中格式化名称字符串。名称字符串可以包含多个版本的空格 (' ')、破折号 ('-') 和点 ('.')。名称字符串的格式应首字母大写。请参阅以下示例:

  • 约翰·多伊 -> 约翰·多伊
  • 阿尔阿明 jar -> 阿尔阿明 jar
  • 数学-LY Haroun -> 数学-Ly Haroun
  • 圣。约翰 -> 圣约翰

找到一个特殊字符是可能的,但找到组合是困难的部分。我将不胜感激任何想法。

也许检查字符串的格式是否正确是有意义的,但前提是这可以简化事情。

最佳答案

感谢大家的评论。 Initcap 函数让我走上了正确的道路。我想分享我使用的代码,它完全符合我的需要。这也适用于变音符号并检查空格、点和破折号。

function initCap($string){
mb_internal_encoding('UTF-8');
$return_string ='';
$pattern='/[\wäöüÄÖÜßáéíóúÁÉÍÓÚ]+[\s\.\-]+/';
if(preg_match($pattern, $string)){
while(preg_match($pattern,$string,$temp_array,PREG_OFFSET_CAPTURE,strlen($return_string))){
if(stripos($temp_array[0][0],'von ')===0 ||stripos($temp_array[0][0],'der ')===0){
$return_string.=strtolower($temp_array[0][0]);
}else {
$convert = mb_strtolower($temp_array[0][0]);
$return_string .= mb_strtoupper(mb_substr($convert,0,1)).mb_substr($convert,1);
}
}
$return_string.=ucfirst(strtolower(substr($string,strlen($return_string))));

} else {
$convert = mb_strtolower($string);
$return_string = mb_strtoupper(mb_substr($convert,0,1)).mb_substr($convert,1);
}
return $return_string;
}

关于MYSQL - 使用分隔符格式化名称字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938248/

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