Php 问题:仅替换字符串的最后一个空格
我试图用Php 问题:仅替换字符串的最后一个空格,php,regex,Php,Regex,我试图用标记替换名称中的最后一个空格。到目前为止,我的姓被简单地删除了,“Amy L.Example”变成了“Amy L.” 在此正则表达式上的任何帮助都将不胜感激。刚刚开始了解它们是如何工作的 代码: <?php $resume['name'] = preg_replace('/\s(\S*)$/', '<br />', $resume['name']); echo $resume['name'] ?> 您需要在替换字符串中放入$1,这样您捕获的单词将被保留
标记替换名称中的最后一个空格。到目前为止,我的姓被简单地删除了,“Amy L.Example”变成了“Amy L.” 在此正则表达式上的任何帮助都将不胜感激。刚刚开始了解它们是如何工作的 代码:
<?php $resume['name'] = preg_replace('/\s(\S*)$/', '<br />', $resume['name']); echo $resume['name'] ?>
您需要在替换字符串中放入$1
,这样您捕获的单词将被保留,而不是删除。您需要在替换字符串中放入$1
,这样您捕获的单词将被保留,而不是删除。您告诉PHP将空格字符后的任何非空格字符替换为,放置在字符串末尾,带有
,因此您的最后一个空格+最后一个单词
显然已被删除,并仅由标记替换
只需将其编辑为:
preg_replace('/\s(\S*)$/', ' \\1<br />', $name);
preg\u replace('/\s(\s*)$/','\\1
',$name);
通过这种方式,您可以将
最后一个空格+最后一个单词
替换为空格、单词本身和标记。您告诉PHP将字符串末尾的空格字符后的任何非空格字符替换为
,因此,您的最后一个空格+最后一个单词
显然已被删除,并仅由标记替换
只需将其编辑为:
preg_replace('/\s(\S*)$/', ' \\1<br />', $name);
preg\u replace('/\s(\s*)$/','\\1
',$name);
通过这种方式,您可以将
最后一个空格+最后一个单词
替换为一个空格、单词本身和标记。顺便提一下,另一种方法是:preg_replace('/\s(?=\s*$)/','
,$resume['name')代码>-在这种情况下,单词不会被捕获,只是通过向前看确认,因此您不需要$1
。不过,我不知道哪种方法更有效。顺便说一句,另一种方法是:preg\u replace('/\s(?=\s*$)/',“
,$resume['name')代码>-在这种情况下,单词不会被捕获,只是通过向前看确认,因此您不需要$1
。不过,我不知道哪一个更有效。