Thread View: pl.comp.lang.perl
5 messages
5 total messages
Started by Adam Kubicki
Wed, 09 Jul 1997 18:06
problem z regexp
Author: Adam Kubicki
Date: Wed, 09 Jul 1997 18:06
Date: Wed, 09 Jul 1997 18:06
9 lines
998 bytes
998 bytes
chce wyciac z linii wszystko zaczynajace sie od '(' lub cyfry.
ponizszy warunek zle dziala, dla linii bez cyfr jest OK, jednak jesli jest
i '(' i cyfra pozniej, zaczyna od cyfry zamiast od wczesniejszego '('
ma ktos jakis pomysl?
/((\(|\d).*)/ -- cos takiego wg mnie powinno dzialac
jesli jest cyfra lub ( dziala OK, dla ( przed cyfra zle dziala.
rozne wariacje tego - ([\(\d].*) itp tez nie dzialaja
Re: problem z regexp
Author: Piotr Piatkowski
Date: Thu, 10 Jul 1997 09:07
Date: Thu, 10 Jul 1997 09:07
16 lines
1327 bytes
1327 bytes
Adam Kubicki <mikee@galaxy.uci.agh.edu.pl> wrote:
: chce wyciac z linii wszystko zaczynajace sie od '(' lub cyfry.
: ponizszy warunek zle dziala, dla linii bez cyfr jest OK, jednak jesli jest
: i '(' i cyfra pozniej, zaczyna od cyfry zamiast od wczesniejszego '('
: ma ktos jakis pomysl?
: /((\(|\d).*)/ -- cos takiego wg mnie powinno dzialac
: jesli jest cyfra lub ( dziala OK, dla ( przed cyfra zle dziala.
: rozne wariacje tego - ([\(\d].*) itp tez nie dzialaja
Niemożliwe - u mnie działa, sprawdziłem. Możesz pokazać większy
fragment programu w którym to nie chce działać?
--
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: problem z regexp
Author: Adam Kubicki
Date: Fri, 11 Jul 1997 13:12
Date: Fri, 11 Jul 1997 13:12
17 lines
1392 bytes
1392 bytes
Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> wrote: : : /((\(|\d).*)/ -- cos takiego wg mnie powinno dzialac : : jesli jest cyfra lub ( dziala OK, dla ( przed cyfra zle dziala. : : rozne wariacje tego - ([\(\d].*) itp tez nie dzialaja : Niemożliwe - u mnie działa, sprawdziłem. Możesz pokazać większy : fragment programu w którym to nie chce działać? masz racje, troche sie pospieszylem. nizej jest caly przyklad, chce w $1 miec to co jest przed tym drugim kawalkiem (zaczynajacym sie od ( lub cyfry) perl -e '"blah blah (nawias i 01238)" =~ /(.*) ((\(|\d).*)/ && print "$1; $2\n"' blah blah (nawias i; 01238) jak widac to zle dziala, jesli przed 01238 nie ma spacji jest OK, co jest zle?
Re: problem z regexp
Author: Maciej Jastrzebski pedro
Date: Fri, 11 Jul 1997 17:00
Date: Fri, 11 Jul 1997 17:00
31 lines
1758 bytes
1758 bytes
Adam Kubicki <mikee@galaxy.uci.agh.edu.pl> wrote:
[ ... ]
> masz racje, troche sie pospieszylem. nizej jest caly przyklad, chce w $1 miec
> to co jest przed tym drugim kawalkiem (zaczynajacym sie od ( lub cyfry)
> perl -e '"blah blah (nawias i 01238)" =~ /(.*) ((\(|\d).*)/ && print "$1; $2\n"'
> blah blah (nawias i; 01238)
> jak widac to zle dziala, jesli przed 01238 nie ma spacji jest OK, co jest zle?
Jesli problem lezy w tym, w czym mysle - czyli w maksymalnym dopasowaniu,
to w Perlu 5 mozna wymusic dopasowanie minimalne przez '?':
perl -e '"blah blah (nawias i 01238)" =~ /(.*?) ((\(|\d).*)/ && print "$1; $2\n"'
A w Perl 4 trzeba na poczatku dopasowywac inaczej:
perl -e '"blah blah (nawias i 01238)" =~ /([^\(\d]*) ((\(|\d).*)/ && print "$1; $2\n"'
Mam nadzieje, ze o to chodzilo.
HTH, Pedro
--
Maciej "Pedro" Jastrzebski pedro@golem.umcs.lublin.pl
"As the people here grow colder / I turn to my computer
And spend my evenings with it / Like a friend."
Kate Bush, "Deeper Understanding"
Re: problem z regexp
Author: Adam Kubicki
Date: Fri, 11 Jul 1997 19:52
Date: Fri, 11 Jul 1997 19:52
7 lines
1049 bytes
1049 bytes
Maciej Jastrzebski <pedro@apollo.umcs.lublin.pl> wrote: : Jesli problem lezy w tym, w czym mysle - czyli w maksymalnym dopasowaniu, : to w Perlu 5 mozna wymusic dopasowanie minimalne przez '?': : perl -e '"blah blah (nawias i 01238)" =~ /(.*?) ((\(|\d).*)/ && print "$1; $2\n"' chodzi ladnie, dzieki
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