Для замены регулярного выражения Perl используются переменные соответствия, которые являются частями внутри скобок в регулярном выражении:
$1 $2 $3 $4
'/(.*)(\?|&)' . $key . '=[^&]+?(&)(.*)/i'
Таким образом, ссылка на $1
в строке замены заменит то, что было найдено в первых скобках. $0
однако будет относиться ко всей соответствующей строке.
Вы можете даже сопоставить поднаборы в скобках внутри самого регулярного выражения, используя обратную косую черту вместо знака доллара. Например, если вы хотите заменить двойные слова «the» или «and»:
preg_replace('/\b(the|and)\b\s*\1/', '$1', $sentence);