3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = "Each person wants peaches for themselves forever"; $blacklist = array("for", "each"); //print_r($blacklist); // if you might have non-letter characters that have special meaning to the regex engine //$blacklist = array_map(function($v){return preg_quote($v, '/');}, $blacklist); //print_r($blacklist); echo "Without wordboundaries:\n"; var_export(preg_replace('/' . implode('|', $blacklist) . '/i', '', $string)); echo "\n\n---\n"; echo "With wordboundaries:\n"; var_export(preg_replace('/\b(?:' . implode('|', $blacklist) . ')\b/i', '', $string)); echo "\n\n---\n"; echo "With wordboundaries and consecutive space mop up:\n"; var_export(trim(preg_replace(array('/\b(?:' . implode('|', $blacklist) . ')\b/i', '/ \K +/'), '', $string)));
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
Without wordboundaries: ' person wants pes themselves ever' --- With wordboundaries: ' person wants peaches themselves forever' --- With wordboundaries and consecutive space mop up: 'person wants peaches themselves forever'

preferences:
150.91 ms | 408 KiB | 5 Q