Wyrażenia regularne: Różnice pomiędzy wersjami

Z DisWiki
Przejdź do nawigacji Przejdź do wyszukiwania
(d)
 
 
(Nie pokazano 15 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
 
'''wyrażenia regularne''' (''regular expressions'') - pochodząca z systemów Unix konwencja definiowania napisów, obecnie rozpowszechniona w wielu edytorach.  
 
'''wyrażenia regularne''' (''regular expressions'') - pochodząca z systemów Unix konwencja definiowania napisów, obecnie rozpowszechniona w wielu edytorach.  
  
Przykładowe konwencje tworzenia wyrażeń regularnych
+
'''Wybrane zasady tworzenia wyrażeń regularnych'''
  
 
* '''.''' - dowolny jeden znak
 
* '''.''' - dowolny jeden znak
 
* '''$''' - koniec linii;
 
* '''$''' - koniec linii;
 
* '''^''' - początek linii;
 
* '''^''' - początek linii;
* '''[z-Z]''' - wystąpienie znaku od z do Z w porządku leksykograficznym;
+
* '''?''' - poprzedni znak wystąpi co najwyżej raz;
* '''[n-N]''' - wystąpienie cyfry od n do N w porządku leksykograficznym;
+
* '''|''' - albo dla wystąpienia wzorca sprzed i po tym znaku;
 +
* '''+''' - poprzedni znak występuje co najmniej raz
 +
* '''[^xyz]''' - zaprzeczenie listy wymienionych znaków '''xyz''';
 +
* '''[z-Z]''' - wystąpienie znaku od '''z''' do '''Z''' w porządku leksykograficznym;
 +
* '''[n-N]''' - wystąpienie cyfry od '''n''' do '''N''' w porządku leksykograficznym;
 +
* '''(...)''' - definiowanie \n-tego wzorca (n=1..9), do dalszych operacji wywoływanego jako '''\1''', ...'''\9'''
 +
* '''{m,n}''' - wystąpienie poprzedzającego znaku nie mniej niż '''m''' razy i nie więcej niż '''n''' razy;
 +
* '''\''' - znak pozwalający traktować następujący po nim znak sterujący '''^$+.|[{(''' itp jako zwykły znak.
 +
 
 +
'''Przykład 1.'''
 +
 
 +
* '''(<td>[a-Z]+</td>)(<td>[0-9]+</td>)''' - wyszukiwanie w HTML sąsiadujących obok komórek tabeli najpierw literowych - i następujących po nich komórek cyfrowych
 +
* '''\2\1''' - w komendzie zamień (''replace'') przestawienie wzorców wyszukanych w poprzedzającym algorytmie szukania
 +
 
 +
'''Przykład 2.'''
 +
* '''^\(([0-9]+)\)''' - wyszukanie wzorca - dowolny ciąg cyfr w nawiasach (.), występujacego na początku linii
 +
* '''(\1)''' - powtórzenie tego wzorca otoczonego znakami <nowiki>'''</nowiki> z obydwu stron
 +
 
 +
'''Przykład 3.'''
 +
* '''dziennikar(z|ka)''' - przedstawienie wzorca alternatywnego dla dwóch słów: ''dziennikarz'' oraz ''dziennikarka''
 +
 
 +
 
 +
 
 +
'''Zobacz także:'''
 +
* [[GREP]]
 +
* [http://regexpal.com tester wyrażeń regularnych]
  
 
[[Kategoria:terminologia IT]]
 
[[Kategoria:terminologia IT]]
 +
[[kategoria:techniczna]]

Aktualna wersja na dzień 01:27, 18 sty 2024

wyrażenia regularne (regular expressions) - pochodząca z systemów Unix konwencja definiowania napisów, obecnie rozpowszechniona w wielu edytorach.

Wybrane zasady tworzenia wyrażeń regularnych

  • . - dowolny jeden znak
  • $ - koniec linii;
  • ^ - początek linii;
  • ? - poprzedni znak wystąpi co najwyżej raz;
  • | - albo dla wystąpienia wzorca sprzed i po tym znaku;
  • + - poprzedni znak występuje co najmniej raz
  • [^xyz] - zaprzeczenie listy wymienionych znaków xyz;
  • [z-Z] - wystąpienie znaku od z do Z w porządku leksykograficznym;
  • [n-N] - wystąpienie cyfry od n do N w porządku leksykograficznym;
  • (...) - definiowanie \n-tego wzorca (n=1..9), do dalszych operacji wywoływanego jako \1, ...\9
  • {m,n} - wystąpienie poprzedzającego znaku nie mniej niż m razy i nie więcej niż n razy;
  • \ - znak pozwalający traktować następujący po nim znak sterujący ^$+.|[{( itp jako zwykły znak.

Przykład 1.

  • ([a-Z]+)([0-9]+) - wyszukiwanie w HTML sąsiadujących obok komórek tabeli najpierw literowych - i następujących po nich komórek cyfrowych
  • \2\1 - w komendzie zamień (replace) przestawienie wzorców wyszukanych w poprzedzającym algorytmie szukania

Przykład 2.

  • ^\(([0-9]+)\) - wyszukanie wzorca - dowolny ciąg cyfr w nawiasach (.), występujacego na początku linii
  • (\1) - powtórzenie tego wzorca otoczonego znakami ''' z obydwu stron

Przykład 3.

  • dziennikar(z|ka) - przedstawienie wzorca alternatywnego dla dwóch słów: dziennikarz oraz dziennikarka


Zobacz także: