preg_replace包含 +,则任何内容都以字符串开头并以空格或句点结尾


preg_replace to include a +, anything begins with string and ends with whitespace or period

我正在经历

一个魔鬼般的时间让preg_replace工作!模式是它以"so+"开头,然后它应该替换它以及后面的所有内容。

so+FirstName, 
Your Reservation is confirmed for so+Date

将替换为:

James,
Your Reservation is confirmed for July 1, 2017.

如果有帮助,我可以这样使用:或so_而不是加号。但是我需要替换任何以该模式开头的内容,包括它后面的内容,直到它达到空格或句点。

编辑:我试过:

$search = '/'bso+([a-z]*)'b/i';
$search = ''bso+'w*'b';

试试这个它工作正常,问题只是在+,添加斜杠以平庸化它

<?php
$string="so+FirstName,Your Reservation is confirmed for so+Date";
$string = preg_replace('/'bso'+([a-z]*),'b/i', 'James', $string);
$string = preg_replace('/'bso'+Date'b/i', date('M d,Y'), $string);
echo $string;
?>

+是一个特殊字符,如果要在字符串中匹配它,则必须使用'+