Wprowadzenie do wyrażeń regularnych
Wyrażenia regularne, powszechnie znane jako regex lub regexp, to sekwencje znaków tworzące wzorce wyszukiwania. Są one używane głównie do dopasowywania i manipulacji ciągami. Regex może być niezwykle wydajny w wyszukiwaniu, zastępowaniu i wydobywaniu danych z tekstu.
Podstawowa składnia
Wyrażenia regularne składają się z kombinacji znaków literału i znaków specjalnych zwanych metaznakami. Oto kilka podstawowych komponentów:
- Znaki dosłowne: Są to normalne znaki, które pasują do siebie. Na przykład wyrażenie regularne
cat
pasuje do ciągu "cat". - Metaznaki: Znaki te mają specjalne znaczenie i służą do budowania złożonych wzorców. Przykłady obejmują
.
,*
,*+
,?
,[]
,{}
,()
i|
.
Wspólne metaznaki
Poniżej znajdują się niektóre z najczęściej używanych metaznaków i ich funkcje:
.
- Dopasowuje dowolny pojedynczy znak z wyjątkiem znaku nowej linii.*
- Dopasowuje 0 lub więcej powtórzeń poprzedniego elementu.+
- Dopasowuje 1 lub więcej powtórzeń poprzedniego elementu.?
- Dopasowuje 0 lub 1 powtórzenie poprzedniego elementu.[]
— Służy do dopasowywania dowolnego znaku w nawiasach.{}
– Określa określoną liczbę wystąpień poprzedzającego elementu.()
— grupuje wiele tokenów i tworzy grupy przechwytujące.|
- Działa jako operator OR.
Przykłady podstawowych wzorców
Przyjrzyjmy się kilku podstawowym wzorcom wyrażeń regularnych na przykładach:
cat
Dopasowuje ciąg "cat" w dowolnym miejscu tekstu.
.at
Dopasowuje dowolny ciąg zawierający "a", po którym następuje dowolny znak, a następnie "t". Na przykład "cat", "bat", "hat".
\d{3}
Pasuje dokładnie trzy cyfry. Na przykład "123", "456", "789".
[a-z]
Dopasowuje dowolną małą literę od "a" do "z".
(dog|cat)
Pasuje do "dog" lub "cat".
Używanie wyrażeń regularnych w programowaniu
Wyrażenia regularne są obsługiwane w wielu językach programowania. Oto przykłady użycia wyrażeń regularnych w Pythonie i JavaScript:
Przykład Pythona
import re
# Search for 'cat' in a string
pattern = r'cat'
text = 'The cat sat on the mat.'
match = re.search(pattern, text)
if match:
print('Match found:', match.group())
else:
print('No match found')
Przykład JavaScriptu
// Search for 'cat' in a string
const pattern = /cat/;
const text = 'The cat sat on the mat.';
const match = text.match(pattern);
if (match) {
console.log('Match found:', match[0]);
} else {
console.log('No match found');
}
Wniosek
Wyrażenia regularne są potężnym narzędziem do przetwarzania tekstu i ekstrakcji danych. Rozumiejąc podstawową składnię i typowe wzorce, możesz zacząć używać wyrażeń regularnych w swoich projektach, aby usprawnić i ulepszyć możliwości manipulacji tekstem. Ćwicz z różnymi wzorcami i odkrywaj zaawansowane funkcje wyrażeń regularnych, aby zyskać większą biegłość.