Article View: pl.comp.lang.perl
Article #52370Re: Akademicki problem z funkcja split
From: tomjas
Date: Sun, 29 Jan 2012 13:18
Date: Sun, 29 Jan 2012 13:18
23 lines
2106 bytes
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-mailReferences:
<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