Article View: pl.comp.lang.perl
Article #39912Re: wyraz za, wyraz przed
From: Maciej Misiak
Date: Wed, 03 Nov 2004 07:23
Date: Wed, 03 Nov 2004 07:23
47 lines
2251 bytes
2251 bytes
No to na poczatek kilka uwag: jesli wczytujesz linie do zmiennej $linia to po
pierwsze linijka
$line = 0
jest niepotrzebna. Po drugie w petli zaraz po wczytaniu kazdej linii zwiekszasz
zmienna $line o 1. Perl w takim przypadku zaczyna traktowac to, co w zmiennej
$line za liczbe i poniewaz na poczatku nie ma zadnych cyfr, to konwertuje ja do
wartosci 0. Dodaje jedynke i zmienna $line zamiast ciagu znakow zawiera wartosc
1, w ktorej nijak nie ma prawa wystapic ciag z regexpa. Jesli chcesz znac numer
linii w pliku, ktora wlasnie odczytales, to uzyj zmiennej $., ktora ta dana
posiada.
Sprobuj tak:
> $word = 'nie';
> while ( $line = <INP>)
> {
> while( $line =~ /(^|([^\s]+\s))\s*${word}((\s+[^\s]+)|(\s*$))/g )
> {
> printf("word in lne ${line}: $& \n");
> }
> }
I u mnie jesli plik wyglada tak:
-poczatek pliku-
Zbyszek Malec Ustronie 104 gg: 2756100
nie nie nie
tak, tak. tak, taaak.
nie tak nie
tak nie tak nie
-koniec pliku-
to wynik wyglada tak:
word in lne nie nie nie
: nie nie
word in lne nie tak nie
: nie tak
word in lne tak nie tak nie
: tak nie tak
I jesli bedziesz mial uwagi co do tego, ze w drugiej linii jest znalezione
tylko jedno 'nie' to jeszcze pogadamy o assertach :)
pzdr
Grizzley
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Technical Details
Message-ID:
<42c6.000007e4.41888778@newsgate.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.plReferences:
<cm8pa3$3t4$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl From: "Maciej Misiak" <grizzleyWYTNIJTO@op.pl> Newsgroups: pl.comp.lang.perl Subject: Re: wyraz za, wyraz przed Date: 3 Nov 2004 08:23:38 +0100 Organization: Onet.pl SA Lines: 47 Message-ID: <42c6.000007e4.41888778@newsgate.onet.pl> References: <cm8pa3$3t4$1@inews.gazeta.pl> NNTP-Posting-Host: newsgate.onet.pl Mime-Version: 1.0 X-Trace: newsgate.test.onet.pl 1099466618 22306 213.180.130.18 (3 Nov 2004 07:23:38 GMT) X-Complaints-To: abuse@onet.pl NNTP-Posting-Date: 3 Nov 2004 07:23:38 GMT X-Mailer: http://niusy.onet.pl X-Forwarded-For: 217.153.136.40, 157.25.5.69, 192.168.243.38 X-User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit