🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#1205
From: Adam Karpierz
Date: Fri, 10 Apr 1998 11:15
57 lines
2866 bytes
Qrczak napisal:
[...]
> Chciałbym się spytać, czy coś takiego jak w Temacie ma 
> obowiązek zadziałać tak jak chcę. W praktyce u mnie 
> działa, ale nie wiem, czy można zakładać, że tak będzie
> zawsze...
> 
> Chodzi mi mianowicie o to "\(.*?\)|.*?". Kolejność obu 
> możliwości ma znaczenie! Chcę żeby w przypadku kiedy 
> zaczynamy od "+(", wziąć wszystko aż do następnego 
> ")+", łącznie z ewentualnymi wewnętrznymi "+". 
> Teoretycznie on mógłby dopasować to do drugiego 
> wariantu: ".*?", i zatrzymać się na pierwszym "+" w 
> nawiasie, jednak tego nie robi - i dobrze! ale może 
> któraś wersja zacznie.
> 
> Mogę oczywiście zamienić to na "\(.*?\)|[^(].*?|" albo 
> nawet na "\((?:[^)]|\)(?!\+))*\)|[^+(][^+]*|", nie ufając 
> ".*?" i mając pewność, że zawsze będzie dobrze (o ile 
> się nie pomyliłem), ale, jak widać, komplikując wyrażenie. 
> Co radzicie?
> 
> A może zaproponujecie lepszą metodę na podzielenie 
> napisu postaci:
>     1+222+(3+(5)6+7)+8
> na:
>     1  222  (3+(5)6+7)  8
> niż:
>     map { s/^\+//; różne_inne_rzeczy; }
>     ("+" . ów_napis) =~ /powyższe_wyrażenie/g
> ?
> 
> BTW: W tych nawiasach będą komendy basha. Przyjąłem 
> założenie, że po prostu nie może w nich wystąpić ciąg ")+". 
> Lepiej by było rozpoznawać zagnieżdżenie nawiasów, 
> czego nie da się załatwić jednym wyrażeniem
> regularnym, ale może macie pomysł, jak to w miarę prosto 
> zrobić?
> Oczywiście nawiasy wyeskejpowane albo w cudzysłowach 
> mają się nie liczyć, jak to w szelu. Załóżmy, że komenda 
> jest poprawnie zbudowana. Pewnie jednak szkoda zachodu, 
> ")+" można wyeskejpować jeśli ktoś przypadkiem będzie 
> tego potrzebował...

Zaniemowilem z wrazenia... Calkiem powaznie mowie !
Qurczaku, juz nigdy nikomu nie powiem ze jest glupi 
jak qura :))).

PS: Moze ktos da znac Pawlowi Gajdzie zeby juz nie szukal 
      zaciemniacza do Perla. Jest na www.qurczak.com.pl :).
      Tyle ze nie darmowy :).

-- 
Pozdrawiam i zycze wszystkim Perlowistkom i Perlowiczom
Wesolych i Spokojnych Swiat (a Qurczakowi szczegolnie:)
   
Adam Karpierz   
Technical Details
Message-ID: <01bd6471$f5a2a140$81baccc2@karpierz.dyn.ml.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!ict.pwr.wroc.pl!not-for-mail
References: <Pine.LNX.3.96.980410093444.16675A-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!ict.pwr.wroc.pl!not-for-mail
From: "Adam Karpierz" <karpierz@inter.intertele.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: /\+(?:\(.*?\)|.*?)(?:$|(?=\+))/g - off topic
Date: 10 Apr 1998 11:15:25 GMT
Organization: Technical University of Wroclaw, Poland
Lines: 58
Message-ID: <01bd6471$f5a2a140$81baccc2@karpierz.dyn.ml.org>
References: <Pine.LNX.3.96.980410093444.16675A-100000@qrnik.knm.org.pl>
NNTP-Posting-Host: ppp149.intertele.pl
X-Newsreader: Microsoft Internet News 4.70.1161
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit