🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #1210

Re: /\+(?:\(.*?\)|.*?)(?:$|(?=\+))/g

#1210
From: Krzysztof Koczyjan
Date: Tue, 14 Apr 1998 22:18
32 lines
1824 bytes
Qrczak wrote:
> 
> On Mon, 13 Apr 1998, Krzysztof Koczyjan wrote:
> 
> Z tym że pozostaje ta sama niepewność, czy on nie dopasuje początku
> czegoś w rodzaju (x+y) akurat do .*? zamiast do \(.*?\). Nigdy nie
> słyszałem o regule, że jeśli coś pasuje do kilku części oddzielonych 

Perl uzywa tzw "leniwego" obliczania wyrazen regularnych - zatrzymuje
sie na pierwszym pasujacym wzorcu - i jak doswidczenia pokazuja sprawdza
wzorce od lewej strony. 
"Pelne" obliczanie zatrzymuje sie na najdluzszym z pasujacych, niestety
wymaga to przejrzenia wszystkich kombinacji. Wymaga to niestety wiecej
czasu, a perl ma dzialac szybko :-).

W przypadku ktory opisujesz nie akurat problemu (.*)\+ jest dluzsze niz
(.*\+ , tak ze zostanie wybrane wlasciwe, ale jesli chcesz miec pewnosc
to mozna uzyc czegos takiego:
while(1){
	if( /\G(\(.*?\))(\+|$)/gc ){
		fun($1);
	}
	elsif( /\G(.*?)(\+|$)/gc ){
		fun($1);
	}
	else{
		last;
	}
}

Pozdrowienia
	KK
Technical Details
Message-ID: <6h0nc4$qj9@bgtnsc03.worldnet.att.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news-peer.gip.net!news.gsl.net!gip.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!worldnet.att.net!newsadm
References: <Pine.LNX.3.96.980410093444.16675A-100000@qrnik.knm.org.pl> <6gukal$gn4@bgtnsc03.worldnet.att.net> <Pine.LNX.3.96.980414112214.18502A-100000@qrnik.knm.org.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!news-peer.gip.net!news.gsl.net!gip.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!worldnet.att.net!newsadm
From: Krzysztof Koczyjan <krzysztofk@rocketmail.com>
Newsgroups: pl.comp.lang.perl
Subject: Re: /\+(?:\(.*?\)|.*?)(?:$|(?=\+))/g
Date: Tue, 14 Apr 1998 17:18:39 -0500
Organization: AT&T WorldNet Services
Lines: 32
Message-ID: <6h0nc4$qj9@bgtnsc03.worldnet.att.net>
References: <Pine.LNX.3.96.980410093444.16675A-100000@qrnik.knm.org.pl> <6gukal$gn4@bgtnsc03.worldnet.att.net> <Pine.LNX.3.96.980414112214.18502A-100000@qrnik.knm.org.pl>
Reply-To: krzysztofk@rocketmail.com
NNTP-Posting-Host: 12.66.1.169
Mime-Version: 1.0
X-Mailer: Mozilla 3.0Gold (Win95; U)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit