🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216866

Re: elementarne pytania z pythona

#216866
From: Piotr Chamera
Date: Sat, 11 Apr 2020 09:33
65 lines
3609 bytes
W dniu 2020-04-11 o 11:16, fir pisze:
> W dniu piątek, 10 kwietnia 2020 20:35:21 UTC+2 użytkownik fir napisał:
>> W dniu piątek, 10 kwietnia 2020 19:33:33 UTC+2 użytkownik Piotr Chamera napisał:
>>> W dniu 2020-04-10 o 12:59, fir pisze:
>>>> ostatnio troche odpoczalem i mysle sobie by cos postudiowac moze rootkity moze opencl..ale stanelo jadnak na podstawah pythona ;C
>>>>
>>>> morugam bo jest to troche lamerskie ale z drugiej strony potrzebowalem napisac bota na nasz ircowy kanal
>>>>
>>>> nie znam jednak zupelnych podstaw na dwutygodniowe lektury podrecznikow troche szkoda mi czasu i moze tu bedzie szybciej
>>>>
>>>> mam test typu
>>>>
>>>> msg = "cytuj pnnn 1232"
>>>>
>>>> i potrzebuje dobrac sie do tej trzeciej liczby i pobrac jej wartosc, pod warunkiem ze pocztek stringa bedzie wlasnie "cytuj pnnn" z kolei jesli tam bedzie nic albo nie liczna tez chcialbym miec to zdetektowane
>>>>
>>>> jaki to kod? tnx
>>>
>>> Można użyć wyrażeń, regularnych (pisałem w pythonie 2.7, w 3.x powinno
>>> być podobnie)
>>>
>>> import re
>>> m = re.match(u"(cytuj pnnn )(\d+)", msg)
>>>
>>> jeśli nie dopasuje do wzorca m będzie None
>>> jeśli dopasuje, to za pomocą group() można pobrać poszczególne części
>>> dopasowania
>>>
>>>   >>> m.group(0)
>>> u'cytuj pnnn 1234'
>>>
>>>   >>> m.group(1)
>>> u'cytuj pnnn '
>>>
>>>   >>> m.group(2)
>>> u'1234'
>>>
>>>   >>> int(m.group(2))
>>> 1234
>>
>> ok tnx zobacze troche pozniej, tez python 2.7
> 
> nie dziala ale poprawdzie to troche uproscilem konkretny string jest taki
> 
> :fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion ogniem 222
> 
> 
> chodzi o to by ignorowal poczatek wymagal ":minion ogniem" i bral liczbe po tym
> 
> ta liczba pozniej jest numerem lini z pliku tekstaowego ksiazki np "ogniem i mieczem" ktor moj bot minion zacytuje na kanal
> 
> wie moze kolega?
> 
> (wiem ze moglbym sie wczytac ale narazi enie mam sily i poszukuje prostej drogi poki nie skumuluje energii)
> 

Warto przejrzeć przynajmniej dokumentację modułu wyrażeń regularnach.
przy dopasowaniu wzorców tekstowych to bardzo dobre narządzie.

 >>> import re
 >>> msg = u":fir!~pirc@vhost:freedom.freakz PRIVMSG #grunge :minion 
ogniem 222"
 >>> m = re.match(u".*?(:minion ogniem )(\d+)", msg)
 >>> int(m.group(2))
222
Technical Details
Message-ID: <r6s2u1$a7q$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
References: <60d7e74e-19ff-4601-83d2-c42e01baa1f6@googlegroups.com> <r6qalc$b4t$1@dont-email.me> <35a7e0da-aafd-48be-84e0-dfbc14674e4f@googlegroups.com> <bf7a5c3a-4d6e-4d07-8067-58e3f32a511a@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin3!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: Piotr Chamera <piotr_chamera@poczta.onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: elementarne pytania z pythona
Date: Sat, 11 Apr 2020 11:33:53 +0200
Organization: A noiseless patient Spider
Lines: 65
Message-ID: <r6s2u1$a7q$1@dont-email.me>
References: <60d7e74e-19ff-4601-83d2-c42e01baa1f6@googlegroups.com> <r6qalc$b4t$1@dont-email.me> <35a7e0da-aafd-48be-84e0-dfbc14674e4f@googlegroups.com> <bf7a5c3a-4d6e-4d07-8067-58e3f32a511a@googlegroups.com>
Mime-Version: 1.0
Injection-Date: Sat, 11 Apr 2020 09:33:53 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="d8de2f4b772302e357395fe23ff3526a"; logging-data="10490"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/T1FcmqWu56GsDRw8ydf1f"
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0
Cancel-Lock: sha1:KvEk3mJBkvAOYlQal4YMHkV5mDY=
In-Reply-To: <bf7a5c3a-4d6e-4d07-8067-58e3f32a511a@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit