split na vety

Pavel Smerk xsmerk na informatics.muni.cz
Čtvrtek Říjen 17 09:57:56 MEST 2002


On Thu, Oct 17, 2002 at 09:51:26AM +0200, Jiri Polcar wrote:
> potreboval bych napsat RE pro `split' tak, aby jednotlive prvky
> predstavovaly vety. Vetu, pro jednoduchost, definuji tak, ze musi
> zacinat velkym pismenem a koncit [\.\?\!\:\;], po kterem muze nasledovat
> mezera.  
> 
> Moje
> 
>         @list_of_sentences = split /(?=[\.\?\!\:\;]\s*[A-Z])/, $_;

@list_of_sentences = split /(?<=$konec_vety\s*)(?=$zacatek_vety)/, $_;

tedy napr.

use locale;
@list_of_sentences = split /(?<=[\.\?\!\:\;]\s*)(?=[[:upper:]])/, $_;

jestli jsem spravne pochopil zadani. Mezery mezi vetami padnou na konec vet
jim predchazejicich. Sezere to i Á-Ž.
									P.

> funguje tak, ze "\.\s" je vzdy na zacatku nasledujici vety, coz nechci.
> 
> Podminkou je, ze kdyz @list_of_sentences spojim zase dohromady, dostanu
> presne totez, jako na vstupu.
> 
>         join '', @list_of_sentences


Další informace o konferenci Perl