Hola amigos, tengo una duda con una expresión regular. El tema es que tengo un diccionario en un archivo .txt y quisiera eliminar la parte de los antónimos y ciertos caracteres como doble barra (//) y algunas abreviaturas como (ant.), (cont.), etc.
Para empezar, me he creado un pequeño script php donde escribo en otro txt y sustituyo dichas expresiones. Pero la principal dificultad se me plantea con los fragmentos de texto que no me interesan, los antónimos. he probado lo siguiente:
Normalmente comienza con la abreviatura ant. sigue con una cadena de texto donde hay espacios, comas, finales de línea y termina en un punto
CitarAnt. Oclusión, cerramiento,
obturación, clausura,
cierre.
Por lo tanto probé con esto
$archivotexto = file_get_contents ("sinonimos.txt");
$texto = preg_replace ("/(ant)\.[[:alnum:]]\./i", "", $archivotexto);
$fp = fopen("sinonimos2.txt","w");
fwrite($fp, $texto);
fclose($fp);
sin embargo no me funciona, podríais arrojarme algo de luz? Gracias
Cita de: Mutis99 en 15 Marzo 2012, 18:59 PM
$texto = preg_replace ("/(ant)\.[[:alnum:]]\./i", "", $archivotexto);
Buenas.
Imagino que será debido a que la función
preg_replace interpreta el primer parámetro como un literal y no lo encuentra. Creo que deberías hacer varias llamadas a la función y en cada una de ellas, pasar lo que realmente pueda encontrar. Es decir en una llamada pasas "/", en otra llamada "(ant.)" y así sucesivamente hasta hacer el barrido completo.
Saludos.