Witam pisze cgi w perlu i jetem w miejscu gdzie w pliku na serwerze robię listę logowań( wprowadzona nazwa i ilość wejść) i tu mam pytanie ktoś ma jakąś propozycje jak rozwiązać problem że mam np w pliku "Tomek 28 logowań" i gdy znajduje Tomek to zmienia tylko liczbę logowań
idą święta, to nie wkleję linka do lmgtfy, tylko od razu wyniki:
http://www.google.com/search?hl=pl&safe=off&client=opera&hs=HdY&rls=pl&q=regex+replace+perl&btnG=Szukaj&aq=f&aqi=&aql=&oq=&gs_rfai=
szukam pomocy z ustawienie maski w perlu
$imie.*@ - tak ma na chwile obecną ale w czasie podmiany tej maski innym słowem zamienia tez wszytko co jest dalej w tej linijce
$imie to wprowadzane imię a chce aby maska była od tego słowa do znaku @
rzuciłbyś 3 linijkami kody zamiast tak "o" opisywać, bo cięzko załapać, nie mówiąc, że w pierwszym poście było o tomku , a teraz o małpach :P
if($lista=~/$imie/)
{
open (PLIK, ">/home/bar/lista.txt");
$lista=~s /$imie.*@/$imie : $razy logowan : $ip ip @ /gi;
print PLIK "$lista";
close(PLIK);
}
chodzi o to aby znaleziona maskę zamieniło na imię liczna logowań adres ip
postac jest taka Adam : 14 logowan : 192.168.1.1 ip @
i aby maska obejmowała tylko to składnie od imienia do pierwszego znaku @ bo mi podmienia od imienia i wszystko co jest zapisane dalej (inne zapisy logowan)
Twój przykład nie wydaje się mieć sensu..
nie znam się na perlu, klepię to co znalazłem w googlach i to co wyniosłem z innych języków, spróbuj to:
$lista =~ s/(.*) : ([0-9]+) logowan : ([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}) ip @/$1 : PODMIANA logowan : $3 ip @/gi;
nie wiem jakby tu zrobić inkrementację od razu na regex replace (w php raz takie cos pisalem, nie chce mi sie szukac i zastanawiac czy dalbym rade przeportować to do perla, zreszta calosci Ci robic nie bede), więc zrób match - wybierz ilość logowań do zmiennej, zinkrementuj, i podstaw zamiast PODMIANA, ale zielonego cielęcia nie mam czy tak ruszy, czy musisz zrobić coś magicznego, żeby wepchać zmienną do tego stringa docelowego.
ok ruszyło thx
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.