/ / Dopasowanie łańcuchów regex w Pythonie? - python, regex, dopasowywanie wzorców

Dopasowanie łańcuchów regex w Pythonie? - python, regex, dopasowywanie wzorców

Mam piekło czasu próbując przenieść moje doświadczenie z regex javascript na język Python.

Po prostu próbuję to uruchomić:

print(re.match("e","test"))

... ale drukuje Brak. Jeśli zrobię:

print(re.match("e","est"))

Dopasowuje ... czy domyślnie pasuje do początku ciągu? Kiedy to się zgadza, w jaki sposób mogę użyć wyniku?

Jak zrobić pierwszy mecz? Czy istnieje lepsza dokumentacja niż ta oferowana przez Pythona?

Odpowiedzi:

54 dla odpowiedzi № 1

re.match domyślnie dodaje ^ na początku twojego regex. Innymi słowy, dopasowuje się tylko na początku łańcucha.

re.search spróbuje ponownie na wszystkich pozycjach.

Ogólnie mówiąc, polecam używanie re.search i dodawanie ^ jawnie, kiedy chcesz.

http://docs.python.org/library/re.html


9 dla odpowiedzi nr 2

dokumenty są jasne, myślę.

re.match (wzór, ciąg [, flagi]) ¶

If zero or more characters **at the beginning of string** match the

wzór wyrażenia regularnego, zwróć odpowiedni obiekt MatchObject instancja. Zwraca None, jeśli ciąg nie pasuje do wzorca; Uwaga to różni się od dopasowania zerowego.