嗨我需要在span标签中包装字符串的最后一个字母,我该如何在php中执行此操作?
例如:
$string = 'Get on the roller coaster';
应输出:
'Get on the roller coaste<span>r</span>'
答案 0 :(得分:5)
找到
(.)$
替换为
<span>\1</span>
演示:http://regex101.com/r/bY8kX0
在php中这样:
<?php
$string = 'Get on the roller coaster';
echo preg_replace('/(.)$/', '<span>\1</span>', $string);
答案 1 :(得分:4)
使用此正则表达式:
(.)$
并将其替换为:
<span>\1</span>
.
表示字符,$
表示结尾,()
用于对字符进行分组,以便可以使用。
所以正则表达式说:匹配最后一个字符。
我认为这是一种矫枉过正,本来会给出一个原生的php答案但是,我不知道php:)
感谢sshashank124的分组提示!
答案 2 :(得分:2)
我可能会因为效率低下而受到抨击,但这里有另一种选择:)
// your string :)
$string = 'Get on the roller coaster';
// count the chars of your string, not the bytes ;)
$stringLength = mb_strlen($string);
// a string's characters can be accessed in array form IF it is an actual string and not an INT or w/e
// echo $string[0] would produce the letter 'G'
// so we want the last character, right-o!
$wrapped = '<span>'.$string[($stringLength - 1)].'</span>';
// mb_substr() the old string and give it that <span>-wrapped char
$newString = mb_substr($string, 0, -1).$wrapped;
// and presto!
// $newString is now === Get on the roller coaste<span>r</span>