eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingelementarne pytania z pythona › Re: elementarne pytania z pythona
  • Data: 2020-04-11 11:33:53
    Temat: Re: elementarne pytania z pythona
    Od: Piotr Chamera <p...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: