mam analizowania dziennika z pytona i trzeba szybko sprowadzić pewne wartości z niegostwardnienie mecze grupowe dla pojedynczego regex
to prostego równoważne regex i użytkowania Przykład
pat = re.compile("(1(2[3456]+2)+1)*")
nie działa zgodnie z oczekiwaniami, tylko ostatnia grupa dopasowania jest zwracana przez pat.match(). groups()
Jakie jest najprostsze rozwiązanie takich problemów?
aktualizowane (jak silnik wiki mówi używać zmienił zamiast tworzyć nowy post):
muszę powtarzające mecze, oczywiście.
to_match="1232112542254211232112322421"
regex find należy zastosować dwukrotnie rekurencyjnie. Mogę to znieść, ale czy są jakieś opcje?
Zmień '*' na '?'. '" (1 (2 [3456] +2) +1)? " –
możliwy duplikat [Python regex multiple groups] (http://stackoverflow.com/questions/4963691/), [Wykonywanie grupowych wyrażeń regularnych z wieloma mecze] (http://stackoverflow.com/questions/5598340/), [Python regexes: Jak uzyskać dostęp do wielu dopasowań grupy?] (http://stackoverflow.com/questions/5060659/). – outis