【发布时间】:2013-10-19 11:53:42
【问题描述】:
我在 PHP 中使用 preg_replace 来查找和替换字符串中的特定单词,如下所示:
$subject = "Apple apple";
print preg_replace('/\bapple\b/i', 'pear', $subject);
结果为'pear pear'。
我希望能够以不区分大小写的方式匹配一个单词,但在替换它时尊重它的大小写 - 给出结果“Pear pear”。
以下工作,但对我来说似乎有点啰嗦:
$pattern = array('/Apple\b/', '/apple\b/');
$replacement = array('Pear', 'pear');
$subject = "Apple apple";
print preg_replace($pattern, $replacement, $subject);
有没有更好的方法来做到这一点?
更新:除了下面提出的一个很好的查询之外,就本任务而言,我只想尊重“标题大小写” - 所以无论单词的第一个字母是否是大写字母。
【问题讨论】:
-
唯一不清楚的是:如果你的替换词和原词的长度不同,而原词在更高的位置有大写字母怎么办? IE。
'applE'和'pear'然后呢? -
好点。出于此特定任务的目的,我只想尊重“标题大小写”(因此第一个字母是否为大写字母)。非常感谢您进一步澄清。
标签: php regex preg-replace