2014-07-21 110 views
0

我正在嘗試刪除字符串中的最後一個元音。例如:PHP:查找字符串中的最後一次出現

$string = 'This is a string of words.'; 

$vowels = array('a','e','i','o','u'); 

if (in_array($string, $vowels)) { 

    // $newstring = '' // Drop last vowel. 

} 

echo $newstring; // Should echo 'This is a string of wrds.'; 

我該怎麼做?

感謝

+0

一個通用的答案在你的標題問題是使用'strrpos' – Sugar

回答

2

使用正則表達式我們可以做到這一點:

$str = 'This is a string of words.'; 
echo preg_replace('/([aeiou]{1})([^aeiou]*)$/i', '$2', $str); 
//output: This is a string of wrds. 

解釋多一點的正則表達式:

  • $ < - 這句話結束
  • ([aeiou] {1})< - 尋找一個元音
  • ([^ aeiou]同時*)查找任何不是元音
+0

你可以解釋正則表達式? 。對很多人都有幫助。我是這個問題的回答者。 :p – user3716835

+0

是的,謝謝你的回答,它似乎有用,但你能解釋一下這個表達嗎? – JROB

+0

在答案中添加解釋@JohnRobinson –

0

希望這個作品

$string = 'This is a string of words.'; 

$words = explode(" ", $string); 

$lastword = array_pop($words); 

$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U", " "); 
$newlastword = str_replace($vowels, "", $lastword); 

$newstring=''; 
foreach ($words as $value) { 
    $newstring=$newstring.' '.$value; 
} 
$newstring=$newstring.' '.$newlastword; 
echo $newstring; 
+0

'$ string ='這是一串帶多個元音的單詞';' – PeeHaa

+0

'+'不會做你認爲它的做法 – PeeHaa

+0

'不使用$ newlastword' – PeeHaa

相關問題