-1

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

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

将被替换为:

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

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

编辑:我试过:

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

2 回答 2

0

试试这个,它工作正常,问题就在 + 中,添加斜线以使其平庸化

<?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;
?>
于 2013-10-10T17:57:34.900 回答
0

+是一个特殊字符,如果你想在你的字符串中匹配它,你必须使用\+.

于 2013-10-10T16:50:40.753 回答