- preg_quote: documentation ( source)
- preg_replace: documentation ( source)
<?php
$test=array("abcd/abcd_.mp3", "abcd", "asdasd/abcd.mp3", "abcd.", "blahahbasdabcd");
$searchTerm = "abcd";
$replaceTerm = "XXXX";
foreach ($test as $t)
echo "$t => " . preg_replace("/(". preg_quote($searchTerm) . "([^_.])|". preg_quote($searchTerm) . "$)/x", preg_quote($replaceTerm) . "\${2}", $t) . "\n";