elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Eleкtro)
| | |-+  Expresión regular para eliminar fragmentos de texto en un archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Expresión regular para eliminar fragmentos de texto en un archivo  (Leído 1,200 veces)
Mutis99

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Expresión regular para eliminar fragmentos de texto en un archivo
« en: 15 Marzo 2012, 18:59 »

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

Citar
Ant. Oclusión, cerramiento,
obturación, clausura,
cierre.

Por lo tanto probé con esto
Código:
$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


« Última modificación: 15 Marzo 2012, 19:00 por Mutis99 » En línea

HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: Expresión regular para eliminar fragmentos de texto en un archivo
« Respuesta #1 en: 15 Marzo 2012, 19:28 »


Código:
$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.


En línea

- Nice to see you again -
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines