🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Akademicki problem z funkcja split

#52370
From: tomjas
Date: Sun, 29 Jan 2012 13:18
23 lines
2106 bytes
On Sun, 29 Jan 2012 09:44:54 +0000 (UTC), Stachu 'Dozzie' K. wrote:
> On 2012-01-28, tomjas <tomjas@WYTNIJTOpoczta.onet.pl> wrote:
>> Próbuję sobie przypomnieć regexpy korzystając z perlretut. I mam problem
>> z funkcją split, a mianowicie:
> [...]
>> print join(",",split /(a|b)+/,"12aba34ba5") # wynik: 12,a,34,a,5
>>
>> Może mi ktoś łopatologicznie wytłumaczyć krok po kroku w jaki sposób
>> perl dopasowuje wzorzec i dzieli ten ciąg?
>
> perldoc -f split, szukasz opisu dla regexpów z nawiasami.
>
Ech... Na to, to akurat wpadłem, ale za diabła nie rozumiem.
"If the PATTERN contains parentheses, additional list elements are
created from each matching substring in the delimiter."
Tzn, rozumiem to, ale w takim razie dlaczego w powyższym przykładzie
w wyniku nie ma "b"? Ja rozumuję tak:
perl szuka po kolei w ciągu najpierw wzorca "a" - mija "12" dochodzi do
"a", dalej szuka bo we wzorcu jest "+" - następnym elementem w ciągu
jest "b" więc nie pasuje, ale pasuje "b" z wzorca - idzie dalej bo znów
"+" - dalej "a" więc nie pasuje. Zatem ciągiem rozdzielającym jest "ab",
więc do pierwszego elementu tablicy wrzuca "12", a w drugim powinien być
ciąg rozdzielający bo przecież są nawiasy. Co źle rozumiem?
Technical Details
Message-ID: <slrnjiahr5.1s8.tomjas@krusty.domain>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <slrnji8hfc.hfn.tomjas@krusty.domain> <slrnjia58k.j5o.dozzie@jarowit.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: tomjas <tomjas@WYTNIJTOpoczta.onet.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: Akademicki problem z funkcja split
Date: Sun, 29 Jan 2012 13:18:58 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 23
Message-ID: <slrnjiahr5.1s8.tomjas@krusty.domain>
References: <slrnji8hfc.hfn.tomjas@krusty.domain> <slrnjia58k.j5o.dozzie@jarowit.net>
Reply-To: tomjas
NNTP-Posting-Host: 77-223-206-237.lublin.hypnet.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1327843138 23941 77.223.206.237 (29 Jan 2012 13:18:58 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sun, 29 Jan 2012 13:18:58 +0000 (UTC)
X-User: tomasz.jasinski
User-Agent: slrn/0.9.9p1 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit