Mar Jun 27, 2006 2:37 pm
|
 |
Lacry
Perlero Nuevo

|
Registrado: 27 Jun 2006
Mensajes: 3
|
|
| Ayuda con un reemplazo de un texto |
|
|
Necesito si me pueden ayudar con esto ya que recien me inicio en Perl y no estoy muy acostumbrado al lenguaje.
Lo que necesito es que dados dos textos:
Texto1: [reemp] Este texto debe ser reemplazado [/reemp] Pero este no.
Texto2: Texto que remplazara a cualquier texto que se encuentre entre [reemp] y [/reemp]
el programa debe reemplazar el texto que se encuentra encerrado entre [reemp] y [/reemp] con un texto nuevo (Texto2). Por supuesto [reemp] y [/reemp] no deben ser mostrados. Lo que busco es que el programa localice las frases que están encerradas entre [reemp] y [/reemp] y las modifique de alguna forma, en este caso cambiándolas por otro texto.
No se si lo que estoy pidiendo es imposible o una tontería asi que pido que sean compasivos con mi pedido
Si no se entiende algo no duden en preguntarme
Muchas gracias! |
|
|
|

Mar Jun 27, 2006 6:11 pm
|
 |
monoswim
Vive para Perl en Español

|
Registrado: 18 Nov 2003
Mensajes: 716
Ubicación: Buenos Aires
|
|
|
|
|
probá con algo parecido a esto
$linea =~ s/\[reemp\].*?\[reemp\]/$newstring/;
Es una expresión regular que hice recién en el momento...Si no sabes de expresioner regulares te recomiendo la sección de tutoriales de este mismo sitio, hay 2 muy buenos acerca del tema...
Espero que te sirva
Saludos |
|
Mar Jun 27, 2006 7:38 pm
|
 |
Lacry
Perlero Nuevo

|
Registrado: 27 Jun 2006
Mensajes: 3
|
|
|
|
|
Muchas gracias monoswim!
Ya mismo leeré los tutoriales que hay sobre el tema y gracias por el código  |
|

Mie Jun 28, 2006 9:14 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| monoswim escribió: | probá con algo parecido a esto
$linea =~ s/\[reemp\].*?\[reemp\]/$newstring/;
Es una expresión regular que hice recién en el momento...Si no sabes de expresioner regulares te recomiendo la sección de tutoriales de este mismo sitio, hay 2 muy buenos acerca del tema...
Espero que te sirva
Saludos |
Solamente como comentario, me parece que a Monoswim le faltó un caracter, pues realmente tu quieres sustituir lo que está entre:
| Código: |
[reemp] Este texto debe ser reemplazado [/reemp]
|
Entonces, a la expresión el falta un parte, por lo que sería:
| Código: |
$linea =~ s/\[reemp\](?:.*?)\[\/reemp\]/$newstring/;
|
Ahora, si tu línea tiene más ocurrencias de [reemp]...[/reemp], entonces deberemos de usar la opción g:
| Código: |
$linea =~ s/\[reemp\](?:.*?)\[\/reemp\]/$newstring/g;
|
Más detalles acerca de esto lo puedes ver en los tutoriales de expresiones regulares que hay en el sitio:
http://perlenespanol.baboonsoftware.com/archives-tut/cat_expresiones_regulares.html
Saludos |
|

Mie Jun 28, 2006 11:10 am
|
 |
Lacry
Perlero Nuevo

|
Registrado: 27 Jun 2006
Mensajes: 3
|
|
|
|
|
Gracias kidd! gracias a ustedes pude resolver el problema, les agradezco mucho  |
|
Powered by phpBB © 2001, 2005 phpBB Group
|