🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#1212
From: Piotr Piatkowski
Date: Tue, 14 Apr 1998 17:43
23 lines
1946 bytes
Qrczak <qrczak@knm.org.pl> wrote:
: 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 |,
: to jest brana pierwsza od lewej... ale rzeczywistość zdaje się to
: potwierdzać, więc tak w końcu zrobiłem.

Potraktowałem to jako wyzwanie - faktycznie w manualu nie znalazłem 
nic na temat kolejności dopasowywania alternatyw, więc zajrzałem do 
źródeł perla :-)

Nie żebym wiele z tego zrozumiał, ale wydaje mi się że algorytm jest 
taki, że perl próbuje dopasować kolejne gałęzie alternatywy (w 
kolejności w jakiej wystąpiły w wyrażeniu) i jeżeli któraś z nich 
pasuje, to już nie sprawdza kolejnych. Oczywiście poza sytuacją gdy 
nie uda mu się dopasować całego wyrażenia i musi wykonać backtrace po
czym spróbować znowu (np. w innym miejscu).

Więc - co też potwierdza praktyka - wszystko wskazuje na to że brana 
jest zawsze pierwsza od lewej pasująca część alternatywy, o ile tylko
umożliwia dopasowanie całego wyrażenia.

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Technical Details
Message-ID: <6h0783$itl$1@galaxy.uci.agh.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.onet.pl!agh.edu.pl!agh.edu.pl!not-for-mail
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!news.nask.pl!news.onet.pl!agh.edu.pl!agh.edu.pl!not-for-mail
From: Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: /\+(?:\(.*?\)|.*?)(?:$|(?=\+))/g
Date: 14 Apr 1998 19:43:31 +0200
Organization: University of Mining & Metallurgy
Lines: 23
Message-ID: <6h0783$itl$1@galaxy.uci.agh.edu.pl>
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>
NNTP-Posting-Host: galaxy.uci.agh.edu.pl
Mime-Version: 1.0
X-Newsreader: TIN [UNIX 1.3 unoff BETA 971018; sun4m SunOS 5.5.1]
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit