PHP
$aaa="";
echo $nn="ab bc cd cde ab aa";
echo "<br>";
echo $n=preg_replace('/cd|ab/', '$aaa', $nn);
echo "<br>";
echo $no=preg_replace('/[a-z]/', '$bbb', $n);
echo "<br><br>";
Результат, который я ожидал, это "$ aaa $ bbb $ aaa $ bbb $ bbb $ bbb". То, что соответствует шаблону "cd" или "ab", должно быть изменено на "$ aaa", а те, которые не имеют равных "$ aaa", БББ".
$aaa="";
echo $nn="ab bc cd cde ab aa";
echo "<br>";
echo $n=preg_replace('/\b(cd|ab)\b/', '$aaa', $nn);
echo "<br>";
echo $no=preg_replace('/((?<= )[a-z]+)\b/', '$bbb', $n);
echo "<br><br>";
Первые замены совпадают внутри: cd или ab в границах слов (т.е. пробелы или начало/конец строки)
Второй заменит match (az) 1 или более раз, которому предшествует пробел (так как $ также является границей слова). Единственным недостатком является то, что это не будет соответствовать cde, если cde должен был стать началом строки.
echo
из ваших заданий. Это только выводит 1 / истина.