Article View: pl.comp.lang.perl
Article #1212Re: /\+(?:\(.*?\)|.*?)(?:$|(?=\+))/g
From: Piotr Piatkowski
Date: Tue, 14 Apr 1998 17:43
Date: Tue, 14 Apr 1998 17:43
23 lines
1946 bytes
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-mailReferences:
<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