Zanurkuj w Pythonie/Analiza przypadku: Przetwarzanie numerów telefonów: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m podwójne </nowiki> |
m Poprawionych wiele drobnych błędów (interpunkcyjnych, gramatycznych, semantycznych). |
||
Linia 1:
== Analiza przypadku: Przetwarzanie numerów telefonów ==
Do tej pory koncentrowaliśmy się na dopasowywaniu całych wzorców. Albo
Oto kolejny przykład z życia wzięty, z jakim można się spotkać: 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 można znaleźć wiele takich wyrażeń regularnych, ale żadne z nich nie jest aż tak bardzo restrykcyjne.
Oto przykłady numerów telefonów, jakie
* 800-555-1212
* 800 555 1212
Linia 16:
* work 1-(800) 555.1212 #1234
Całkiem duże zróżnicowanie! W każdym z tych przypadków musimy wiedzieć, że numerem
Spróbujmy rozwiązać ten problem. Poniższy przykład pokazuje pierwszy krok.
Linia 92:
# Inne odmiany też działają np. numer rozdzielony kropkami ze spacją i <tt>x</tt>-em przed numerem wewnętrznym.
# Wreszcie udało się też rozwiązać problem z brakiem numeru wewnętrznego. Tak czy siak <tt>groups()</tt> zwraca nam krotkę z 4 elementami, ale ostatni jest tutaj pusty.
# Niestety jeszcze nie skończyliśmy. Co tutaj jest nie tak? Przed numerem kierunkowym znajduje się dodatkowy znak <tt>"("</tt>, a nasze wyrażenie zakłada, że numer kierunkowy znajduje się na samym przodzie. Nie ma problemu, możemy zastosować tę samą metodę, co do znaków rozdzielających.
}}
Linia 117:
{{Python/Przykład
|7.15|Numerze telefonu, znajdę cię, gdziekolwiek jesteś!
|tekst=
>>> phonePattern = re.compile(r'(\d{3})\D*(\d{3})\D*(\d{4})\D*(\d*)$') #(1)
Linia 135:
Widzimy, jak szybko wyrażenia regularne wymykają się spod kontroli? Rzućmy okiem na jedną z poprzednich przykładów. Widzimy różnice pomiędzy nim i następnym?
Póki jeszcze rozumiemy to, co napisaliśmy,
{{Python/Przykład
|