PDA

Visualizza la versione completa : [perl] Problema parsing


alex1986
01-04-2011, 15:49
Buongiorno a tutti,

da pochi giorni sto studiando Perl e piano piano comincio a muovermi tra le varie espressioni per fare match, ma soprattutto sostituzione!!!

Sto imparando molto ma quello che non ho ancora capito come fare a individuare e stampare il testo che si trova tra 2 determinati delimitatori.

L' obiettivo quello di dare in input un file.txt, rimuovere tutti i caratteri tipo tab, spazi e newline, in modo tale da avere un' unica stringa senza interruzioni, e successivamente estratte tutte e le SOLE stringhe che sono racchiuse tra i double quote:



#!/usr/bin/perl


open FILE, "file.txt" or die $!;


while ( my $line = <FILE> ) {
$line =~ s/\s//g ;

???????????

print $line;
}


Non riesco proprio a capire cosa mettere l in mezzo, sul manuale non trovo nulla a riguardo.

Grazie a tutti.

shishii
03-04-2011, 17:49
con:

$line =~ s/\s//g;

elimini tutti gli spazi contenuti nella stringa passata, pertanto poi non fai altro che stampare la stringa senza spazi.

Non ho capito il tuo riferimento a dei delimitatori. Se hai dei delimitatori e intendi stampare le stringhe contenute tra essi devi fare:



# delimitatore "##"
$line = "123##marco##34567"
$line =~ /##[^#]##/;
# ovvero trova qualunque cosa differente da "#" contenuto tra due serie di "##"
print $&;

alex1986
04-04-2011, 17:21
si grazie intendevo proprio quello..non mi era ancora ben chiara la funzione delle parentesi, ora ho capito grazie!!!

per quanto riguarda la parte che eliminava gli spazi non centrava, era solo una cosa in pi che volevo fare io ma non serve...

GRAZIE :D

Loading