Szczegóły ebooka

Wyrażenia regularne. Receptury

Wyrażenia regularne. Receptury

Steven Levithan, Jan Goyvaerts

Ebook

Poznaj i wykorzystaj możliwości regexpów w codziennej pracy!

  • Jak wyrażenia regularne mogą przyśpieszyć Twoją pracę?
  • Jak sprawdzić poprawność danych?
  • Jak wykorzystać wyrażenia regularne w pracy z plikami XML?

Wyrażenie regularne (ang. regexp) to inaczej wzorzec, który określa zbiór dopasowanych łańcuchów znaków. Brzmi to prosto. Jednak przy pierwszym spotkaniu z wyrażeniami wcale tak nie jest. Zbiór znaków i symboli składający się na wyrażenie regularne w niczym nie przypomina rzeczy, którą chciałbyś się zająć. Wyrażenia regularne zawsze kojarzą się początkującemu użytkownikowi co najmniej z wiedzą tajemną, a często wręcz z magią. Warto im się jednak przyjrzeć, poznać je i polubić, a następnie wykorzystać możliwości, jakie w nich drzemią.

Jedno jest pewne - te możliwości są spore. Autorzy błyskawicznie zaprzyjaźnią Cię z wyrażeniami regularnymi - książka należy bowiem do znanej serii Receptury, cechującej się tym, że proces nauki jest oparty na analizie rozwiązań prawdziwych problemów. Na samym początku zdobędziesz elementarną wiedzę dotyczącą różnych typów dopasowania oraz dowiesz się, jak unikać najczęstszych problemów. Na kolejnych stronach nauczysz się stosować wyrażenia regularne w różnych językach programowania oraz wykorzystywać je do kontroli poprawności danych i formatowania ciągów znaków. Ponadto dowiesz się, jak operować na słowach, wierszach, znakach specjalnych oraz liczbach. Osobny rozdział został poświęcony operacjom na adresach URL oraz ścieżkach dostępu. Dzięki tej książce szybko zgłębisz tajniki wyrażeń regularnych. Kolejny krok to wykorzystanie tej wiedzy w codziennej pracy!

  • Dopasowanie stałego tekstu
  • Dopasowanie znaków niedrukowanych
  • Dopasowania na początku i końcu wiersza
  • Wyrażenia regularne dla całych wyrazów
  • Wykorzystanie alternatywnych wyrażeń
  • Grupowanie dopasowań
  • Eliminowanie nawrotów
  • Sposoby komentowania wyrażeń
  • Wyrażenia regularne w językach programowania
  • Weryfikacja i formatowanie danych z wykorzystaniem wyrażeń regularnych
  • Dopasowanie kompletnego wiersza
  • Praca z liczbami
  • Operacje na adresach URL, ścieżkach i adresach internetowych
  • Wykorzystanie wyrażeń regularnych w pracy z plikami XML

Sprawdź, jak wyrażenia regularne mogą przyśpieszyć Twoją pracę!

Przedmowa (9)

1. Wprowadzenie do wyrażeń regularnych (15)

  • Definicja wyrażeń regularnych (15)
  • Przeszukiwanie i zastępowanie tekstu z wykorzystaniem wyrażeń regularnych (20)
  • Narzędzia do pracy z wyrażeniami regularnymi (22)

2. Podstawowe techniki budowania wyrażeń regularnych (41)

  • 2.1. Dopasowywanie stałego tekstu (42)
  • 2.2. Dopasowywanie znaków niedrukowanych (44)
  • 2.3. Dopasowywanie jednego z wielu znaków (47)
  • 2.4. Dopasowywanie dowolnego znaku (51)
  • 2.5. Dopasowywanie czegoś na początku i (lub) końcu wiersza (53)
  • 2.6. Dopasowywanie całych wyrazów (58)
  • 2.7. Punkty kodowe, właściwości, bloki i alfabety standardu Unicode (61)
  • 2.8. Dopasowywanie jednego z wielu alternatywnych wyrażeń (73)
  • 2.9. Grupowanie i przechwytywanie fragmentów dopasowań (75)
  • 2.10. Ponowne dopasowanie już dopasowanego tekstu (78)
  • 2.11. Przechwytywanie i nazywanie fragmentów dopasowań (80)
  • 2.12. Powtarzanie fragmentu wyrażenia regularnego określoną liczbę razy (83)
  • 2.13. Wybieranie minimalnego lub maksymalnego z powtórzeń (86)
  • 2.14. Eliminowanie niepotrzebnych nawrotów (89)
  • 2.15. Zapobieganie niekończącym się powtórzeniom (92)
  • 2.16. Testowanie dopasowań bez ich dodawania do właściwego dopasowania (95)
  • 2.17. Dopasowywanie jednej lub dwóch alternatyw zależnie od pewnego warunku (102)
  • 2.18. Dodawanie komentarzy do wyrażeń regularnych (104)
  • 2.19. Umieszczanie stałego tekstu w tekście docelowym operacji wyszukiwania i zastępowania (106)
  • 2.20. Umieszczanie dopasowania wyrażenia regularnego w tekście docelowym operacji wyszukiwania i zastępowania (109)
  • 2.21. Umieszczanie fragmentu wyrażenia regularnego w tekście docelowym operacji wyszukiwania i zastępowania (111)
  • 2.22. Umieszczanie kontekstu dopasowania w tekście docelowym operacji wyszukiwania i zastępowania (114)

3. Programowanie z wykorzystaniem wyrażeń regularnych (117)

  • Języki programowania i odmiany wyrażeń regularnych (117)
  • 3.1. Stałe wyrażenia regularne w kodzie źródłowym (123)
  • 3.2. Importowanie biblioteki wyrażeń regularnych (129)
  • 3.3. Tworzenie obiektów wyrażeń regularnych (131)
  • 3.4. Ustawianie opcji wyrażeń regularnych (137)
  • 3.5. Sprawdzanie możliwości odnalezienia dopasowania w przetwarzanym łańcuchu (144)
  • 3.6. Sprawdzanie, czy dane wyrażenie regularne pasuje do całego przetwarzanego łańcucha (151)
  • 3.7. Uzyskiwanie dopasowanego tekstu (156)
  • 3.8. Określanie pozycji i długości dopasowania (161)
  • 3.9. Uzyskiwanie części dopasowanego tekstu (167)
  • 3.10. Uzyskiwanie listy wszystkich dopasowań (173)
  • 3.11. Iteracyjne przeszukiwanie wszystkich dopasowań (179)
  • 3.12. Filtrowanie dopasowań w kodzie proceduralnym (185)
  • 3.13. Odnajdywanie dopasowania w ramach innego dopasowania (188)
  • 3.14. Zastępowanie wszystkich dopasowań (192)
  • 3.15. Zastępowanie dopasowań z wykorzystaniem ich fragmentów (199)
  • 3.16. Zastępowanie dopasowań tekstem docelowym generowanym na poziomie kodu proceduralnego (204)
  • 3.17. Zastępowanie wszystkich dopasowań w ramach dopasowań do innego wyrażenia regularnego (211)
  • 3.18. Zastępowanie wszystkich dopasowań pomiędzy dopasowaniami do innego wyrażenia regularnego (213)
  • 3.19. Dzielenie łańcucha (218)
  • 3.20. Dzielenie łańcucha z zachowaniem dopasowań do wyrażenia regularnego (227)
  • 3.21. Przeszukiwanie kolejnych wierszy (231)

4. Weryfikacja i formatowanie danych (235)

  • 4.1. Weryfikacja adresów poczty elektronicznej (235)
  • 4.2. Weryfikacja i formatowanie numerów telefonów stosowanych w Ameryce Północnej (241)
  • 4.3. Weryfikacja międzynarodowych numerów telefonów (246)
  • 4.4. Weryfikacja tradycyjnych formatów zapisu daty (248)
  • 4.5. Bardziej restrykcyjna weryfikacja tradycyjnych formatów zapisu daty (252)
  • 4.6. Weryfikacja tradycyjnych formatów godziny (256)
  • 4.7. Weryfikacja zgodności daty i godziny ze standardem ISO 8601 (259)
  • 4.8. Ograniczanie danych wejściowych do znaków alfanumerycznych (263)
  • 4.9. Ograniczanie długości dopasowywanego tekstu (266)
  • 4.10. Ograniczanie liczby wierszy w przetwarzanym tekście (270)
  • 4.11. Weryfikacja pozytywnych odpowiedzi (275)
  • 4.12. Weryfikacja numerów ubezpieczenia społecznego (SSN) stosowanych w Stanach Zjednoczonych (277)
  • 4.13. Weryfikacja numerów ISBN (279)
  • 4.14. Weryfikacja amerykańskich kodów pocztowych (286)
  • 4.15. Weryfikacja kanadyjskich kodów pocztowych (287)
  • 4.16. Weryfikacja brytyjskich kodów pocztowych (288)
  • 4.17. Odnajdywanie adresów wskazujących skrytki pocztowe (288)
  • 4.18. Zmiana formatów nazwisk z "imię nazwisko" na "nazwisko, imię" (290)
  • 4.19. Weryfikacja numerów kart kredytowych (293)
  • 4.20. Europejskie numery płatników podatku VAT (299)

5. Wyrazy, wiersze i znaki specjalne (307)

  • 5.1. Odnajdywanie określonego wyrazu (307)
  • 5.2. Odnajdywanie dowolnego wyrazu ze zbioru słów (310)
  • 5.3. Odnajdywanie podobnych wyrazów (312)
  • 5.4. Odnajdywanie wszystkich wyrazów z wyjątkiem określonego słowa (316)
  • 5.5. Odnajdywanie dowolnego słowa, po którym nie występuje pewien wyraz (318)
  • 5.6. Odnajdywanie dowolnego słowa, przed którym nie występuje pewien wyraz (319)
  • 5.7. Odnajdywanie wyrazów znajdujących się w pobliżu (323)
  • 5.8. Odnajdywanie powtarzających się wyrazów (329)
  • 5.9. Usuwanie powtarzających się wierszy (330)
  • 5.10. Dopasowywanie kompletnych wierszy zawierających określony wyraz (335)
  • 5.11. Dopasowywanie kompletnych wierszy, które nie zawierają określonego słowa (337)
  • 5.12. Obcinanie początkowych i końcowych znaków białych (338)
  • 5.13. Zastępowanie powtarzających się znaków białych pojedynczą spacją (341)
  • 5.14. Stosowanie znaków ucieczki dla metaznaków wyrażeń regularnych (342)

6. Liczby (347)

  • 6.1. Liczby całkowite (347)
  • 6.2. Liczby szesnastkowe (350)
  • 6.3. Liczby binarne (353)
  • 6.4. Usuwanie początkowych zer (354)
  • 6.5. Liczby należące do określonego przedziału (355)
  • 6.6. Liczby szesnastkowe należące do określonego przedziału (361)
  • 6.7. Liczby zmiennoprzecinkowe (364)
  • 6.8. Liczby z separatorem tysiąca (367)
  • 6.9. Liczby rzymskie (368)

7. Adresy URL, ścieżki i adresy internetowe (371)

  • 7.1. Weryfikacja adresów URL (371)
  • 7.2. Odnajdywanie adresów URL w dłuższym tekście (375)
  • 7.3. Odnajdywanie w dłuższym tekście adresów URL otoczonych cudzysłowami (377)
  • 7.4. Odnajdywanie w dłuższym tekście adresów URL z nawiasami okrągłymi (378)
  • 7.5. Umieszczanie adresów URL w łączach (380)
  • 7.6. Weryfikacja nazw URN (381)
  • 7.7. Weryfikacja poprawności adresów URL według ogólnych reguł (383)
  • 7.8. Wyodrębnianie schematu z adresu URL (388)
  • 7.9. Wyodrębnianie nazwy użytkownika z adresu URL (390)
  • 7.10. Wyodrębnianie nazwy hosta z adresu URL (392)
  • 7.11. Wyodrębnianie numeru portu z adresu URL (394)
  • 7.12. Wyodrębnianie ścieżki z adresu URL (396)
  • 7.13. Wyodrębnianie zapytania z adresu URL (399)
  • 7.14. Wyodrębnianie fragmentu z adresu URL (400)
  • 7.15. Weryfikacja nazw domen (401)
  • 7.16. Dopasowywanie adresów IPv4 (403)
  • 7.17. Dopasowywanie adresów IPv6 (406)
  • 7.18. Weryfikacja ścieżek systemu Windows (418)
  • 7.19. Dzielenie ścieżek systemu Windows na części składowe (421)
  • 7.20. Wyodrębnianie litery dysku ze ścieżki systemu Windows (425)
  • 7.21. Wyodrębnianie serwera i zasobu ze ścieżki UNC (426)
  • 7.22. Wyodrębnianie folderu ze ścieżki systemu operacyjnego Windows (427)
  • 7.23. Wyodrębnianie nazwy pliku ze ścieżki systemu Windows (430)
  • 7.24. Wyodrębnianie rozszerzenia pliku ze ścieżki systemu Windows (431)
  • 7.25. Usuwanie nieprawidłowych znaków z nazw plików (432)

8. Języki znaczników i formaty wymiany danych (435)

  • 8.1. Odnajdywanie znaczników XML-a (441)
  • 8.2. Zastępowanie znaczników <b> znacznikami <strong> (459)
  • 8.3. Usuwanie wszystkich znaczników XML-a z wyjątkiem znaczników <em> i <strong> (462)
  • 8.4. Dopasowywanie nazw XML-a (465)
  • 8.5. Konwersja zwykłego tekstu na kod HTML-a poprzez dodanie znaczników <p> i <br> (471)
  • 8.6. Odnajdywanie konkretnych atrybutów w znacznikach XML-a (475)
  • 8.7. Dodawanie atrybutu cellspacing do tych znaczników <table>, które jeszcze tego atrybutu nie zawierają (479)
  • 8.8. Usuwanie komentarzy XML-a (482)
  • 8.9. Odnajdywanie słów w ramach komentarzy XML-a (486)
  • 8.10. Zmiana separatora stosowanego w plikach CSV (491)
  • 8.11. Wyodrębnianie pól CSV z określonej kolumny (494)
  • 8.12. Dopasowywanie nagłówków sekcji pliku INI (498)
  • 8.13. Dopasowywanie bloków sekcji pliku INI (499)
  • 8.14. Dopasowywanie par nazwa-wartość w plikach INI (501)

Skorowidz (503)

  • Tytuł: Wyrażenia regularne. Receptury
  • Autor: Jan Goyvaerts, Steven Levithan
  • Tytuł oryginału: Regular Expressions Cookbook
  • Tłumaczenie: Mikołaj Szczepaniak
  • ISBN: 978-83-246-6169-5, 9788324661695
  • Data wydania: 2012-07-13
  • Format: Ebook
  • Identyfikator pozycji: wyrere
  • Wydawca: Helion