Wybrane metaznaki wyrażeń rozszerzonych wyrażeń regularnych (POSIX ERE, ang. Extended Regular Expressions)
[lista]
pasuje do pojedynczego znaku z danej listy
[^lista]
pasuje do znaku nie podanego na liście
.
(kropka) pasuje do dowolnego pojedynczego znaku
\w
jest równoważne [0-9a-zA-Z]
lub [[:alnum:]]
, czyli zastępuje dowolna literę lub cyfrę
\W
oznacza to samo co $[^[[:alnum:]]]
^
i $
to odpowiednio początek i koniec linii
\<
oraz \>
początek i koniec słowa
Po wyrażeniu regularnym mogą stać operatory powtórzenia:
?
poprzedzający element pasuje zero lub jeden raz, np. miark?a
pasuje do miarka
ale też miara
*
poprzedzający element pasuje zero lub więcej razy, np W*in
pasuje zarówno do słowa Windows
jak i do Linux
+
poprzedzający element pasuje jeden lub więcej razy,
{n}
poprzedzający element pasuje dokładnie n
razy
|
operator LUB, np. Fizyka|fizyka
pasuje do fizyka
oraz Fizyka
()
grupowanie, np. fizy(ka|cy)
pasuje zarówno do fizyka
i fizycy
.
Uwaga: w podstawowych wyrażeniach regularnych (POSIX BRE ang. Basic Regular Expressions) stosowanych w większości narzędzi UNIXowych metaznaki ?
, +
, {}
, ()
, |
tracą swoje szczególne znaczenie; zamiast nich należy użyć \?
, \+
, \{\}
, \(\)
, \|
.
Przykłady:
grep ’bash$’ /etc/passwd
linie w których występuje wyraz rozpoczynający się literą a
lub A
grep ’^From: ’ /var/mail/$USER
lista odebranej poczty (linie rozpoczynające się słowem From:
)
grep -v ’^$’ plik
wszystkie linie, które nie są puste
grep ’[0-9]\{9\}’ plik
dziewięciocyfrowe ciągi liczb, np. numery telefonów
grep ’(.\+) plik’
psuje do dowolnego ciągu składającego się przynajmniej z jednego znaku zawartego w nawiasach