php - Preg替换为数组中的单词

标签 php regex

我有一个必须从字符串中替换的单词数组,我们称它为 $my_replacements。我还有一个字符串,我们称它为 $my_string,它可以包含其中的一些值。

现在我有这个:

foreach ($my_replacements as $replacement) {
    $replaced_value = preg_replace("/(^|[\n\r\f\t \.\,])" . $replacement . "([\n\r\f\t \.\,]|$)/iu", '', $my_string);
    if($replaced_value !== $my_string) {
       break;
    }
}

如果在第一次替换时我想退出 foreach,这很好。但是,如果字符串包含一个或多个要替换的值,它将不起作用。我怎样才能使用 preg_replace 找到这些词,并将它们全部替换?重要的是我知道是否已完成任何替换。

最佳答案

您可以通过 preg_replace() 使用索引数组。

<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[0] = 'slow';
$replacements[1] = 'black';
$replacements[2] = 'bear';
echo preg_replace($patterns, $replacements, $string);
?>

上面的例子会输出:

The slow black bear jumped over the lazy dog.

关于php - Preg替换为数组中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622580/

相关文章:

php - 将 SQL 函数作为 PDO 准备语句运行并返回值

PHP查询学校时间表

Java正则表达式意外删除最后一个值

python - 打印包含特定整数的行的行号

sql - PL/SQL 在多个列和表中查找特殊字符

php - 获取 'array' 或 'Resource id #5'

php - WordPress URL 更改失败

php - jQuery、AJAX : Can't insert data from form and return to same page

perl中的正则表达式,匹配换行符和下一行的第一个单词

regex - 否定正则表达式 Notepad++