echo $string
可以提供任何文字。
如何删除单词"blank"
,只有$string
的最后一个单词?
因此,如果我们有"Steve Blank is here"
之类的句子 - 不应删除任何内容,否则如果句子为"his name is Granblank"
,则应移除"Blank"
字。
答案 0 :(得分:16)
您可以使用正则表达式轻松完成。 \b
确保只有在单独的单词时才删除它。
$str = preg_replace('/\bblank$/', '', $str);
答案 1 :(得分:4)
作为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
答案 2 :(得分:1)
尝试以下:
$str=trim($str);
$strlength=strlen($str);
if(strcasecmp(substr($str,($strlength-5),$strlength),'blank')==0)
echo $str=substr($str,0,($strlength-5))
除非不需要preg_match
,否则PHP本身建议在匹配很简单时使用字符串函数而不是正则表达式函数。来自preg_matc h手册页
答案 3 :(得分:-2)
ThiefMaster非常正确。不涉及行结束$
正则表达式字符的技术是使用rtrim。
$trimmed = rtrim($str, "blank");
var_dump($trimmed);
^如果你想删除字符串的最后一个字符。如果你想删除最后一个字:
$trimmed = rtrim($str, "\sblank");
var_dump($trimmed);