Temat: Problem z re

Walczę, czytam i coś mi nie wychodzi :)

Cel - z danego stringa wyekstrachować do listy wszystkie fragmenty odpowiadające wyrażeniu. W ogólnej formie poszukiwane wyrażenie można zapisać następująco:



[tylko_litery_i_cyfry:tylkocyfry]



Jak dla mnie, reprezentujące je wyrażenie regularne powinno wyglądać następująco:



r'(\[[a-zA-Z0-9]+\:[0-9]+\])'



Wykonuję więc następujący kod:



pat = r'(\[[a-zA-Z0-9]+\:[0-9]+\])'
exp = re.compile(pat)
chk = '[a:0][b:1]'
mtc = exp.search(chk)



W efekcie dostaję nie-None obiekt typu matchObject, ale:



mtc.group(0)

#zwraca: '[a:0][b:1]'

mtc.group(1)

#zwraca: '[b:1]'



Podczas, kiedy moim zamiarem było uzyskanie na koniec następującej krotki (albo listy):



('[a:0]','[b:1]')



Gdzie popełniam błąd? :)Paweł S. edytował(a) ten post dnia 01.09.12 o godzinie 15:31
Marek Wywiał

Marek Wywiał Programista,
administrator,
instruktor

Temat: Problem z re

Czy zamiast:
* re.search()

nie mogłoby być:
* re.findall() ?

Temat: Problem z re

Marek Wywiał:
Czy zamiast:
* re.search()

nie mogłoby być:
* re.findall() ?

Fakt, znalazłem tę funkcję już po napisaniu tego postu (wstyd). Robi dokładnie to, o co mi chodziło. Temat do zamknięcia, thx :)

Następna dyskusja:

xhtml2pdf - problem z polsk...




Wyślij zaproszenie do