una str_replace reemplazar preg_replace por parte palabra limpiar guiones especiales espacios eliminar caracteres cadena buscar php regex preg-replace

str_replace - reemplazar espacios por guiones php



Reemplazar solo la primera coincidencia usando preg_replace (3)

El cuarto parámetro opcional de preg_replace es el limit :

preg_replace($search, $replace, $subject, 1);

Esta pregunta ya tiene una respuesta aquí:

Tengo una cadena con una estructura similar a: ''aba aaa cba sbd dga gad aaa cbz'' . La cadena puede ser un poco diferente cada vez, ya que proviene de una fuente externa.

Me gustaría reemplazar solo la primera aparición de ''aaa'' pero no las otras. ¿Es posible?


Puede usar el argumento de limit de preg_replace para esto y configurarlo en 1 para que ocurra como máximo un reemplazo:

$new = preg_replace(''/aaa/'',''replacement'',$input,1);


por ejemplo, $ contenido es:

START FIRST AAA SECOND AAA

1) si usa:

$content = preg_replace(''/START(.*)AAA/'', ''REPLACED_STRING'', $content);

cambiará todo, desde el inicio hasta el último AAA y su resultado será:

REPLACED_STRING

2) si usa:

$content = preg_replace(''/START(.*?)AAA/'', ''REPLACED_STRING'', $content);

Su resultado será como:

REPLACED_STRING SECOND AAA