2012-02-16 76 views
1

我試圖用
標記替換名稱中的最後一個空格。到目前爲止,我的名字被刪除,「Amy L. Example」變成了「Amy L.」僅替換字符串的最後一個空格的問題

對此正則表達式的任何幫助將不勝感激。剛開始掌握他們的工作方式。

代碼:

<?php $resume['name'] = preg_replace('/\s(\S*)$/', '<br />', $resume['name']); echo $resume['name'] ?> 

回答

3

你需要把$1替換字符串,讓你捕捉到的字將被保留,不會被刪除。

+0

非常感謝。非常有意義。 – jsuissa 2012-02-16 03:07:37

+1

順便說一句,另一種做法是:'preg_replace('/ \ s(?= \ S * $)/','
',$ resume ['name']);' - 在這種情況下,單詞isn沒有被捕獲,只是用向前確認,所以你不需要'$ 1'。不過,我不知道哪個更有效率。 – 2012-02-16 03:16:54

1

你告訴PHP來更換一個空格字符後的任何非空格字符,放置在你的字符串末尾,用<br />,因此您的last space + last word明顯移除,僅由標籤所取代。

只要將它編輯本:

preg_replace('/\s(\S*)$/', ' \\1<br />', $name); 

這樣你的空間,這個詞本身和標籤更換last space + last word