Expresión regular para eliminar fragmentos de texto en un archivo

Iniciado por Mutis99, 15 Marzo 2012, 18:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Mutis99

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

HdM

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.

- Nice to see you again -