split na vety

Honza Pazdziora adelton na informatics.muni.cz
Čtvrtek Říjen 17 10:05:50 MEST 2002


On Thu, Oct 17, 2002 at 09:59:21AM +0200, Pavel Smerk wrote:
> 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 Á-Ž.

A mam Te -- ani sis to nevyzkousel:

$ perl
@list_of_sentences = split /(?<=[\.\?\!\:\;]\s*)(?=[[:upper:]])/, $_;
Variable length lookbehind not implemented before HERE mark in regex m/(?<=[\.\?!:;]\s*)(?=[[:upper:]]) << HERE / at - line 1.
$ perl -v

This is perl, v5.6.1 built for IP27-irix

Copyright 1987-2001, Larry Wall

[...]

Promenny lookbehind perl alespon ve verzi 5.6.1 neumi, cili jakmile
v zadani bylo "po kterem muze nasledovat mezera", cili promennost, tak
neni mozne ten lookbehind na tohle pouzit.

Tvym pritelem je prachobycejny m!!g se zavorkama.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
      ... all of these signs saying sorry but we're closed ...
------------------------------------------------------------------------


Další informace o konferenci Perl