FastFoodなどの文字列がありますが、Foodを削除して、最初の単語だけを残すにはどうすればよいですか?また、VeryFastFoodの場合もありますが、Veryを残す必要があります。
一部の文字列には、大文字の開始文字が3つ含まれている場合があります。この3文字だけを残す必要があります。たとえば、YOUProblem-あなたでなければなりません。
FastFoodなどの文字列がありますが、Foodを削除して、最初の単語だけを残すにはどうすればよいですか?また、VeryFastFoodの場合もありますが、Veryを残す必要があります。
一部の文字列には、大文字の開始文字が3つ含まれている場合があります。この3文字だけを残す必要があります。たとえば、YOUProblem-あなたでなければなりません。
これがハックな解決策です。私が最初に考えることができるのは
<?php
$string = "VeryFastFood";
$found = false;
$tmp = '';
for($i = 0; $i < strlen($string); ++$i)
{
$char = $string[$i];
if(ctype_upper($char))
{
if($found)
{
break;
}
else
{
$found = true;
}
}
$tmp .= $char;
}
$string = $tmp;
var_dump($string);
これがあなたのためにもそれを行うことができる関数です:
function removeUppercase($word){
if(ctype_upper(substr($word,0,3))) //Check for first 3 uppercase and return those
return substr($word,0,3);
for($a=1;$a<strlen($word);$a++){ //Otherwise loop through letters until uppercase is found
if(ctype_upper($word[$a]))
return substr($word,0,$a);
}
return $word;
}
preg_match(/^[A-Z]([A-Z]{2}|[A-Z][a-zA-Z]|[a-z]{2})[a-z]*/), $stringToCheck, $matches);
$matches[0] //has your string
このようなものが機能するはずです。