我有一个问题,我正在努力寻找解决方案。
基本上,假设你有以下字符串:
$string = 'Hello I am a string';
你希望以下面的内容结束:
$string = 'Hello I am a string';
简单地说,用一个不间断的空格替换最后一个空格。
我这样做是因为我不希望标题中的最后一个单词是独立的。仅仅因为在标题方面:
Hello I am a
string
看起来不如
Hello I am
a string
如何做这样的事情?
答案 0 :(得分:23)
来自this example的代码可以解决问题:
// $subject is the original string
// $search is the thing you want to replace
// $replace is what you want to replace it with
substr_replace($subject, $replace, strrpos($subject, $search), strlen($search));
答案 1 :(得分:8)
echo preg_replace('/\s(\S*)$/', ' $1', 'Hello I am a string');
Hello I am a string
\s
匹配空格字符。要明确匹配某个空格,请将其中一个(并将\S
更改为[^ ]
)。
答案 2 :(得分:1)
这样可以解决问题:
$string = preg_replace('/([\s\S]+)\s(\w)$/','$1 $2',$string);
答案 3 :(得分:1)
根据pounndifdef的回答,但是我需要解码
HTML实体,如下所示:
substr_replace($subject, html_entity_decode($replace), strrpos($subject, $search), strlen($search));
也使用了亚历克斯的答案:
preg_replace('/\s(\S*)$/', html_entity_decode(' ').'$1', 'Hello I am a string');
答案 4 :(得分:0)
正常使用str_replace()
,但首先反转字符串。然后,将其反转。