🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#51512
Author: Mściwój
Date: Wed, 15 Jul 2009 19:45
20 lines
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
#51513
Author: Szymon Sokół
Date: Wed, 15 Jul 2009 19:53
13 lines
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
#51514
Author: Maciej Misiak
Date: Wed, 15 Jul 2009 19:53
25 lines
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
#51515
Author: Szymon Sokół
Date: Wed, 15 Jul 2009 20:00
13 lines
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
#51516
Author: Pasman
Date: Thu, 16 Jul 2009 06:32
9 lines
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
#51517
Author: msciwoj
Date: Thu, 16 Jul 2009 09:50
1 lines
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