Cita:
Iniciado por pateketrueke Lo que sucede es que L*? significa "ninguna L o de una a más" y claro que va a capturar palabras que contenga "CO" aunque no necesariamente "COL", así que tu expresión está errada.
Debes colocar .*? que significa "cualquier cosa", debes notar que los modificadores *+{} se aplican sobre el último elemento de la expresión a la izquierda.
PDTA: hay un sub-foro de RegExp, por favor procurar abrir temas donde corresponde.
Muchas gracias por la info y me disculpo por no colocar el post donde corresponde.
Volviendo al tema he cambiado el valore de la regla como dijiste quedandome asi:
Código PHP:
$cadena1="COL LOS NARANJITOS FRTE A COL. LOS FULECOS ESQUINA OPUESTA A LA COLONIA ZAKUMI CALLE MUNDIAL CASA 2018";
echo $cadena1."</br></br>";
$patron="[COL.*?]is";
$var=preg_match($patron,$cadena1);
echo "<b>Output</b><br>";
echo $var."</br>";
$regex=preg_replace($patron,'COLONIA',$cadena1);
echo $regex."</br>";
Indicando el punto para que tome cualquier valor despues de la L.
Ahora viendo viendo el output me devuelve esto:
Input
COL LOS NARANJITOS FRTE A COL. LOS FULECOS ESQUINA OPUESTA A LA COLONIA ZAKUMI CALLE MUNDIAL CASA 2018
Y el output esto:
Output
1
COLONIA LOS NARANJITOS FRTE A COLONIA. LOS FULECOS ESQUINA OPUESTA A LA COLONIAONIA ZAKUMI CALLE MUNDIAL CASA 2018
Me sustituye la palabra correcta de Colonia Zakumi y no quita el punto de la Colonia Fuleco.
Esta parte nose donde debo corregir la regla.