Wyrażenia regularne
Receptury
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
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)
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.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)
520 stron, Format: 16.8x23.7cm, oprawa miękka