[bcn-pm] Expresiones regulares.

Juan Julian Merelo Guervos jmerelo at geneura.ugr.es
Mon Apr 11 23:29:16 PDT 2005


TooManySecrets wrote:

>Juan J. Merelo Guervós wrote:
>  
>
>>No lo había visto nunca, la verdad; $ me suena que es para indicar final
>>de cadena o de línea. De todas formas, siempre puedes imvertir la cadena:
>>
>> DB<1> $kk = 'estoesunacadena'
>>
>> DB<2> print join( "", reverse split(//,$kk))
>>anedacanuseotse
>>
>>y aplicar la expresión regular sobre la cadena invertida.
>>    
>>
>
>Esto estaría bien si se tratara de una cadena, pero es un fichero donde
>hay, por ejemplo, 25 entradas como esta:
>
>nombre	apellidos	dirección	login	password
>
>Esto lo trato con shellscripting, pero en este caso en concreto no
>puedo, ya que la salida, que debo pasar a otro programa, tiene que ser
>pasando:
>
>nombre	dirección	login	password
>
>¿Qué me ocurre con el bash? Que como dirección me pasa el apellido y me
>da error. Entonces he recordado que hay una manera en Perl, de indicar
>que cuando lea una linea como esta, lo haga por la derecha en vez de la
>la izquierda. Así, no tengo más que manejar las dos últimas entradas que
>estarán en dos variables, "juntarlas" en una sola variable, y pasársela
>al programa éste que comento.
>
>Espero haber podido explicarme un poco bien... ;-)
>  
>

Y si haces
chomp($linea)
@cosas = split(/\s+/, $linea);

$cosas[$#cosas] contendrá el último elemento de la línea, y 
$cosas[$#cosas-1] el penúltimo; también puedes sacarlos con pop.

JJ


More information about the Barcelona-pm mailing list