@frasi = split( /[A-Z].*\./ , $text);
non funziona! Il .* credo si mangi tutto quello che c'è in $text, come devo
scrivere l'espressione?
Grazie,
Luca
C'eri quasi:
my @frasi = $testo =~ /([A-Z].*?\.)/gs;
quando vuoi che il match sia non greedy (o /minimale/ che dir si
voglia), devi usare il quantificatore "?".
A latere: non usare split, semplicemente cattura tutti i match (mediante
il modificatore "g").
Infine il modificatore "s" permette a "." di matchare anche il newline
(per gestire il caso in cui una frase sia spezzata su più righe
consecutive).
Ciao,
Emanuele
Dipende anche dalla presenza o meno di \n all'interno della frase, e se vuoi
o no conservare il punto finale. Comunque, prova una delle forme seguenti
(stampa l'array @frasi dopo ognuna per vedere se ti va bene):
$text="Frase numero 1.Frase 2.Questa e' la frase 3.E la frase 4.";
@frasi=split /\./,$text;
@frasi=($text=~m/([^.]+)/g); # come il precedente
@frasi=($text=~m/([^.]+\.)/g);