问题仅替换字符串的最后一个空格

时间:2012-02-16 02:13:45

标签: php regex

我正在尝试用名称替换名称中的最后一个空格。到目前为止,姓氏被删除了“Amy L. Example”变成了“Amy L。”

对此正则表达式的任何帮助将不胜感激。刚刚开始掌握它们的工作原理。

代码:

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

2 个答案:

答案 0 :(得分:3)

您需要将$1放入替换字符串中,以便保留您捕获的单词,而不是删除。

答案 1 :(得分:1)

你告诉PHP 替换任何非空格字符后面的空格字符,放在字符串的末尾,加上<br />,因此你的last space + last word很明显被删除并仅用标签取代。

只需将其编辑为:

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

通过这种方式,您可以用空格,单词本身和标记替换last space + last word