如何使用php用“and”替换字符串中的最后一个逗号?

Ale*_*Vay 5 php regex string replace str-replace

我正在尝试使用strrchr()and用“and”替换文本中最后一次出现的逗号str_replace()。

例子:

$likes = 'Apple, Samsung, Microsoft';
$likes = str_replace(strrchr($likes, ','), ' and ', $likes);
Run Code Online (Sandbox Code Playgroud)

但这会替换整个最后一个单词(在本例中为 Microsoft),包括此字符串中的最后一个逗号。我怎样才能删除最后一个逗号并将其替换为 " 和 " ?

我需要使用strrchr()作为函数来解决这个问题。这就是为什么这个问题没有重复而且更具体的原因。

小智 8

要仅替换最后一次出现,我认为更好的方法是:

$likes = 'Apple, Samsung, Microsoft';
$likes = substr_replace($likes, ' and', strrpos($likes, ','), 1);
Run Code Online (Sandbox Code Playgroud)

strrpos 查找最后一个逗号的位置, substr_replace 将所需的字符串放在该位置,在这种情况下替换 '1' 字符。


Moh*_*mad 5

您可以使用正则表达式查找字符串中的最后一个逗号。PHPpreg_replace()通过正则表达式模式将字符串替换为另一个字符串。

$likes = 'Apple, Samsung, Microsoft';
$likes = preg_replace("/,([^,]+)$/", " and $1", $likes)
Run Code Online (Sandbox Code Playgroud)

在演示中检查结果