Thread View: pl.comp.lang.perl
6 messages
6 total messages
Started by Mściwój
Wed, 15 Jul 2009 19:45
wyrażenia regularne - rozróżnianie grup
Author: Mściwój
Date: Wed, 15 Jul 2009 19:45
Date: Wed, 15 Jul 2009 19:45
20 lines
1821 bytes
1821 bytes
Czy ktoś wie jak używać odwołań do znalezionych dopasowań w podmienianym wyrażeniu? Żeby lepiej zobrazować, totalnie abstrakcyjny przykład: mam wyrażnie: $_ = 'jedendwatrzyczterypiecszescsiedemosiemdziewiecdziesiecjedenascie'; #chcę zamienić na: 'jeden0jedenascie' #nie mogę tak po prostu użyć pierwszej grupy, znaku zero i jedenastej grupy gdyż wyrażenie: $_ =~ s/(jeden)(dwa)(trzy)(cztery)(piec)(szesc)(siedem)(osiem) (dziewiec)(dziesiec)(jedenascie)/$10$11/mg; #da mi w efekcie grupę dziesiątą i jedenastą: print; ---- dziesiecjedenascie Czy jest na to jakiś elegancji sposób zapisu którego nie znam czy trzeba kombinować?
Re: wyrażenia regularne - rozróżnianie grup
Author: Szymon Sokół
Date: Wed, 15 Jul 2009 19:53
Date: Wed, 15 Jul 2009 19:53
13 lines
1658 bytes
1658 bytes
On Wed, 15 Jul 2009 12:45:29 -0700 (PDT), Mściwój wrote:
> Czy ktoś wie jak używać odwołań do znalezionych dopasowań w
> podmienianym wyrażeniu?
Chodzi Ci o:
s/(jeden).*(jedenascie)/${1}0${11}/;
tak?
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H
Re: wyrażenia regularne - rozróżnianie grup
Author: Maciej Misiak
Date: Wed, 15 Jul 2009 19:53
Date: Wed, 15 Jul 2009 19:53
25 lines
1813 bytes
1813 bytes
Mściwój pisze:
> Czy ktoś wie jak używać odwołań do znalezionych dopasowań w
> podmienianym wyrażeniu?
Pewnie.
> Żeby lepiej zobrazować, totalnie abstrakcyjny przykład:
>
> mam wyrażnie:
> $_ =
> 'jedendwatrzyczterypiecszescsiedemosiemdziewiecdziesiecjedenascie';
> #chcę zamienić na: 'jeden0jedenascie'
>
> #nie mogę tak po prostu użyć pierwszej grupy, znaku zero i jedenastej
> grupy gdyż wyrażenie:
> $_ =~ s/(jeden)(dwa)(trzy)(cztery)(piec)(szesc)(siedem)(osiem)
> (dziewiec)(dziesiec)(jedenascie)/$10$11/mg;
> #da mi w efekcie grupę dziesiątą i jedenastą:
Jeśli chcesz odseparować, to użyj nawiasów klamrowych:
$_ =~ s/(jeden)(dwa)(trzy)(cztery)(piec)(szesc)(siedem)(osiem)
(dziewiec)(dziesiec)(jedenascie)/${1}0$11/mg;
--
grizzley
Re: wyrażenia regularne - rozróżnianie grup
Author: Szymon Sokół
Date: Wed, 15 Jul 2009 20:00
Date: Wed, 15 Jul 2009 20:00
13 lines
1888 bytes
1888 bytes
On Wed, 15 Jul 2009 12:45:29 -0700 (PDT), Mściwój wrote:
> Czy ktoś wie jak używać odwołań do znalezionych dopasowań w
> podmienianym wyrażeniu?
Chodzi Ci o:
s/(jeden)i tak dalej(jedenascie)/${1}0${11}/;
tak?
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H
Re: wyrażenia regularne - rozróżnianie grup
Author: Pasman
Date: Thu, 16 Jul 2009 06:32
Date: Thu, 16 Jul 2009 06:32
9 lines
1496 bytes
1496 bytes
> Chodzi Ci o:
> s/(jeden)i tak dalej(jedenascie)/${1}0${11}/;
> tak?
widac problem zniknal razem ze msciwojem
pasman
Re: wyrażenia regularne - rozróżnianie grup
Author: msciwoj
Date: Thu, 16 Jul 2009 09:50
Date: Thu, 16 Jul 2009 09:50
1 lines
1388 bytes
1388 bytes
O to chodziło! Proste i logiczne. Dzięki!
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads