gpt4 book ai didi

PHP句子大小写函数

转载 作者:搜寻专家 更新时间:2023-10-31 21:16:09 26 4
gpt4 key购买 nike

我从 Google 获得了一项功能,可以在句子大小写中清理我的段落。

  1. 我想修改此函数,以便将 2 个以上的换行符转换为换行符。否则它会转换空格中的所有新行字符。所以我会采用段落格式。这里是将所有换行符转换为空格。

  2. 它正在转换为正确的句子大小写。但是,如果我发现单个单词的第一个单词是大写字母,那么我需要函数来忽略它。 As Sometimes,如果有任何名词,它需要大写。我们不能改变它小的情况。 Else if noun 并且除了第一个字符之外还有超过 2 个大写字符而不是将其转换为小写。

Like -> Noun => Noun 但是 NoUn => noun。意味着我想要如果不是第一个字符是大写而不是将它转换为两个小写否则它会保持相同的格式。

function sentence_case($string) {
$sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
$new_string = '';
foreach ($sentences as $key => $sentence) {
$new_string .= ($key & 1) == 0?
ucfirst(strtolower(trim($sentence))) :
$sentence.' ';
}
$new_string = preg_replace("/\bi\b/", "I", $new_string);
//$new_string = preg_replace("/\bi\'\b/", "I'", $new_string);
$new_string = clean_spaces($new_string);
$new_string = m_r_e_s($new_string);
return trim($new_string);
}

最佳答案

function sentence_case($str) {
$cap = true;
$ret='';
for($x = 0; $x < strlen($str); $x++){
$letter = substr($str, $x, 1);
if($letter == "." || $letter == "!" || $letter == "?"){
$cap = true;
}elseif($letter != " " && $cap == true){
$letter = strtoupper($letter);
$cap = false;
}
$ret .= $letter;
}
return $ret;
}

这将保留现有的专有名词大写字母、首字母缩略词和缩写词。

关于PHP句子大小写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8238314/

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