echo $string
可以給出任何文字。僅替換字符串的末尾
如何刪除字"blank"
,只有當它是的最後一個字?
因此,如果我們有像"Steve Blank is here"
這樣的句子 - 不應該刪除任何內容,否則如果句子是"his name is Granblank"
,那麼應刪除"Blank"
單詞。
echo $string
可以給出任何文字。僅替換字符串的末尾
如何刪除字"blank"
,只有當它是的最後一個字?
因此,如果我們有像"Steve Blank is here"
這樣的句子 - 不應該刪除任何內容,否則如果句子是"his name is Granblank"
,那麼應刪除"Blank"
單詞。
你可以很容易地使用正則表達式。 \b
確保只有它是一個單獨的詞時纔會被刪除。
$str = preg_replace('/\bblank$/', '', $str);
嘗試以下:
$str=trim($str);
$strlength=strlen($str);
if(strcasecmp(substr($str,($strlength-5),$strlength),'blank')==0)
echo $str=substr($str,0,($strlength-5))
不要使用preg_match
unlesss它不是必需的,PHP本身建議使用字符串函數在正則表達式功能,當比賽很簡單。從preg_matc h手冊頁
ThiefMaster是相當正確的。不涉及結束行$
正則表達式字符的技術將使用rtrim。
$trimmed = rtrim($str, "blank");
var_dump($trimmed);
^這就是如果你想刪除字符串的最後一個字符。如果你想刪除的最後一個字:
$trimmed = rtrim($str, "\sblank");
var_dump($trimmed);
上Teez的回答變化:
/**
* A slightly more readable, non-regex solution.
*/
function remove_if_trailing($haystack, $needle)
{
// The length of the needle as a negative number is where it would appear in the haystack
$needle_position = strlen($needle) * -1;
// If the last N letters match $needle
if (substr($haystack, $needle_position) == $needle) {
// Then remove the last N letters from the string
$haystack = substr($haystack, 0, $needle_position);
}
return $haystack;
}
echo remove_if_trailing("Steve Blank is here", 'blank'); // OUTPUTS: Steve blank is here
echo remove_if_trailing("his name is Granblank", 'blank'); // OUTPUTS: his name is Gran
這個代碼將取代「空白」無處不在,應該只需更換,如果它是字符串中的最後一次出現。 – Jasper 2012-01-05 23:54:33
錯誤。這就是'$'的用途。 – EboMike 2012-01-06 00:01:42
@Steve你試過這段代碼嗎?它適用於您建議的用例。僅當字符串末尾爲空時,$表示匹配。雖然在你的具體用例中,正則表達式應該是/ blank $ /,因爲你不關心字邊界。 – Owen 2012-01-06 00:04:12