Zanurkuj w Pythonie/Analiza przypadku: Przetwarzanie numerów telefonów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Analiza przypadku: Przetwarzanie numerów telefonów: pierwsza część tłumacznia |
|||
Linia 2:
== Analiza przypadku: Przetwarzanie numerów telefonów ==
Do tej pory koncentrowaliśmy się na dopasowywaniu całych wzorców. Albo pasował albo nie. Ale wyrażenia regularne są dużo potężniejsze. Gdy zostanie dopasowane, można wyciągnąć z niego wybrane kawałki i dzięki temu sprawdzić co gdzie zostało dopasowane.
Oto kolejny przykład z życia wzięty jaki kiedyś napotkałem: przetwarzanie amerykańskich numerów telefonów. Klient chciał móc wprowadzać numer w dowolnej formie w jednym polu, ale potem chciał żeby przechowywać oddzielnie numer kierunkowy, numer w dwóch częściach i opcjonalny numer wewnętrzny w bazie danych firmy. W Internecie znalazłem wiele takich wyrażeń regularnych, ale żadne z nich nie było aż tak mało restrykcyjne.
Oto przykłady numerów telefonów jakie miał on akceptować:
* 800-555-1212
* 800 555 1212
Linia 17:
* work 1-(800) 555.1212 #1234
Całkiem duże zróżnicowanie! W każdym z przypadków musiałem wiedzieć jaki jest numer kierunkowy (800), pierwsza część numeru (555), druga (1212), a dla tych z numerem wewnętrznym także i on (1234).
Spróbujmy rozwiązać ten problem. Poniższy przykład pokazuje pierwszy krok.
'''Przykład 7.10. Odnajdywanie numerów'''
|