PDA

Visualizza la versione completa : modifica di una stringa


Alberto
08-02-2007, 12:01
Se prendo in ingresso una stringa


chomp($stringa=<STDIN>);

ed inserisco questo:


ciao sono alberto ciao

poi con una regexp voglio modificare la stringa in


sono alberto

io avevo provato con


chomp($stringa=<STDIN>);
s/[^ciao]/$stringa/ig;
print $stringa;

però non funziona :master:

Mich_
08-02-2007, 12:07
Mi sa che hai sbagliato la RE.
s/[^ciao]/$stringa/ig;

Questa sostituisce tutti i caratteri escluso c, i a o con quanto inserito nella seconda stringa.

Invece mi par di capire che vuoi eliminare la parola ciao (o sostituirla con qualcos'altro): in tal caso la RE deve essere:
s/ciao/$stringa/ig;

Alberto
08-02-2007, 12:16
Originariamente inviato da Mich_
Mi sa che hai sbagliato la RE.
s/[^ciao]/$stringa/ig;

Ne ero certissimo :D



Questa sostituisce tutti i caratteri escluso c, i a o con quanto inserito nella seconda stringa.

Invece mi par di capire che vuoi eliminare la parola ciao (o sostituirla con qualcos'altro): in tal caso la RE deve essere:
s/ciao/$stringa/ig;

si esatto, voglio eliminare la parola

Ho provato così,

s/ciao/$stringa/ig;
print $stringa;

ma se scrivo

ciao sono alberto mi stampa
ciao sono alberto senza elimanare ciao, dove sbaglio?

Alberto
08-02-2007, 12:28
ho risolto così

$_=$stringa;
s/ciao//ig;
print ;

se non è giusto ditemelo :D :zizi:

thanks

Mich_
08-02-2007, 14:41
Lasciamo stare il chomp, per un attimo, e rivediamo la struttura del tutto.
my $str = "ciao sono alberto ciao";
my $chng = "hallo";
$str ~= s/ciao/$chng/ig;
print $str."\n";

Prova cosi`; nota che ho usato due variabili diverse, mentre tu avevi usato la stessa variabile per due cose diverse.

Alberto
08-02-2007, 16:56
Originariamente inviato da Mich_
Lasciamo stare il chomp, per un attimo, e rivediamo la struttura del tutto.
my $str = "ciao sono alberto ciao";
my $chng = "hallo";
$str ~= s/ciao/$chng/ig;
print $str."\n";

Prova cosi`; nota che ho usato due variabili diverse, mentre tu avevi usato la stessa variabile per due cose diverse.

:yuppi: Sei un mito :D funziona alla grande :fighet:

Loading