Co to są wyrażenia regularne systemu Linux?
Wyrażenia regularne Linuksa to znaki specjalne, które pomagają wyszukiwać dane i dopasowywać złożone wzorce. Wyrażenia regularne są skracane jako „regexp” lub „regex”. Są używane w wielu programach Linuksa, takich jak grep, bash, rename, sed itp.
Rodzaje wyrażeń regularnych
Aby ułatwić zrozumienie, nauczmy się kolejno różnych typów Regex.
- Podstawowe wyrażenia regularne
- Interwał Wyrażenia regularne
- Rozszerzone wyrażenia regularne
- Podsumowanie
Kliknij tutaj, jeśli wideo nie jest dostępne
Podstawowe wyrażenia regularne
Niektóre z najczęściej używanych poleceń z wyrażeniami regularnymi to tr, sed, vi i grep. Poniżej wymienione są niektóre z podstawowych Regex.
Symbol | Opisy |
---|---|
. | zastępuje dowolny znak |
dopasowuje początek łańcucha | |
$ | dopasowuje koniec łańcucha |
* | dopasowuje zero lub więcej razy poprzedni znak |
\ | Przedstawiają znaki specjalne |
() | Wyrażenia regularne grup |
? | Dopasowuje dokładnie jeden znak |
Zobaczmy przykład.
Wykonaj próbkę cat, aby zobaczyć zawartość istniejącego pliku
Wyszukaj zawartość zawierającą literę „a”.
„ ^ ” dopasowuje początek łańcucha. Poszukajmy treści, które ZACZYNA SIĘ z rozszerzeniem
Filtrowane są tylko wiersze zaczynające się od znaku. Wiersze, które nie zawierają znaku „a” na początku, są ignorowane.
Spójrzmy na inny przykład -
Wybierz tylko te wiersze, które kończą się na t, używając znaku $
Interwał Wyrażenia regularne
Te wyrażenia mówią nam o liczbie wystąpień znaku w ciągu. Oni są
Wyrażenie | Opis |
---|---|
{n} |
Dopasowuje poprzedni znak występujący dokładnie „n” razy |
{n, m} | Odpowiada poprzedzającemu znakowi występującemu „n” razy, ale nie więcej niż m |
{n,} | Dopasowuje poprzedni znak tylko wtedy, gdy występuje n lub więcej razy |
Przykład:
Odfiltruj wszystkie wiersze zawierające znak „p”
Chcemy sprawdzić, czy znak „p” występuje dokładnie 2 razy w ciągu, jeden po drugim. W tym przypadku składnia byłaby następująca:
cat sample | grep -E p\{2}
Uwaga: musisz dodać -E z tymi wyrażeniami regularnymi.
Rozszerzone wyrażenia regularne
Te wyrażenia regularne zawierają kombinacje więcej niż jednego wyrażenia. Niektórzy z nich są:
Wyrażenie | Opis |
---|---|
\ + |
Dopasowuje jedno lub więcej wystąpień poprzedniego znaku |
\? |
Dopasowuje zero lub jedno wystąpienie poprzedniego znaku |
Przykład:
Wyszukiwanie wszystkich znaków „t”
Załóżmy, że chcemy odfiltrować wiersze, w których znak „a” poprzedza znak „t”
Możemy użyć polecenia takiego jak
cat sample|grep "a\+t"
Rozwinięcie nawiasów
Składnia rozwijania nawiasów jest albo sekwencją, albo rozdzieloną przecinkami listą elementów w nawiasach klamrowych „{}”. Elementy początkowe i końcowe w sekwencji są oddzielone dwiema kropkami „…”.
Kilka przykładów:
W powyższych przykładach polecenie echo tworzy łańcuchy przy użyciu rozwinięcia nawiasów.
Podsumowanie:
- Wyrażenia regularne to zestaw znaków używanych do sprawdzania wzorców w łańcuchach
- Nazywa się je również „regexp” i „regex”
- Ważne jest, aby nauczyć się wyrażeń regularnych do pisania skryptów
- Oto kilka podstawowych wyrażeń regularnych:
Symbol | Opisy |
---|---|
. | zastępuje dowolny znak |
dopasowuje początek łańcucha | |
$ | dopasowuje koniec łańcucha |
- Niektóre rozszerzone wyrażenia regularne to:
Wyrażenie | Opis |
---|---|
\ + | Dopasowuje jedno lub więcej wystąpień poprzedniego znaku |
\? | Dopasowuje zero lub jedno wystąpienie poprzedniego znaku |
- Niektóre wyrażenia regularne interwałowe to:
Wyrażenie | Opis |
---|---|
{n} | Dopasowuje poprzedni znak występujący dokładnie „n” razy |
{n, m} | Odpowiada poprzedzającemu znakowi występującemu „n” razy, ale nie więcej niż m |
{n,} | Dopasowuje poprzedni znak tylko wtedy, gdy występuje n lub więcej razy |
- Rozwinięcie nawiasów jest używane do generowania ciągów. Pomaga w tworzeniu wielu ciągów z jednego.