U ovom članku je objašnjenja upotreba regularnih izraza (regular expression) u Odvjetničkom uredu.
Regularni izraz je izraz kojim se definira uzorak koji se koristi za pretraživanje teksta. U ovom članku ćemo regularne izraze objasniti na primjeru sudskih brojeva spisa, a to je upravo područje u kojem se regularni izrazi i koriste u Odvjetničkom uredu.
Ukoliko želimo pronaći točno određeni broj spisa (npr. P-1234/08) jednostavno u npr. Wordu pritisnemo Ctrl+F, u pretraživaču teksta upišemo P-1234/08 i pritisnemo traži. Ali što ako želimo pronaći bilo koji sudski broj: P-1234/08 ali i Ovr-123/2008. Iako zadatak na prvi pogled izgleda kao nemoguća misija, ako malo bolje pogledamo prethodna dva broja vidimo da imaju neke sličnosti. Oba počinju velikim slovom, zatim se u drugom broju pojavljuje nekoliko malih slova, znak -, nekoliko brojeva, znak / te još nekoliko brojeva. Upravo smo opisno definirali uzorak i sad ga trebamo prevesti u regularni izraz:
Dakle naš regularni izraz za pronalaženje sudskih brojeva bi bio [A-Z][a-z]*-[0-9]+/[0-9]+. Ovaj izraz će pronaći i Pn-123/05 i Rev-124/08, ali neće R1-123/08, a ni Gž-123/08, jer drugi izraz ([a-z]*) pronalazi samo mala slova engleske abecede, a u R1-123/08 imamo broj 1, a u Gž-123/08 malo slovo ž. Da bi naš regularni izraz pronašao i ove brojeve, u [a-z] ćemo dopisati brojeve 1 i 2 (postoje samo R1 i R2 upisnici) i slovo ž, pa će naš izraz postati [A-Z][a-z12ž]*-[0-9]+/[0-9]+.
U gornjem primjeru smo koristili staru Unix sintaksu regularnih izraza, jer nju u nešto izmijenjenom i skraćenom obliku podržava i Microsoft Word. Postoje POSIX i Perl ekstenzije koje pojednostavnjuju sintaksu, a podržavaju i druge jezike (uključujući i hrvatski). Na primjer izraz [A-Z] se može napisati i kao \u, s tim de će izraz [A-Z] pronaći samo slova engleske abecede, dok će \u pronaći i Č,Ć,Đ,Š i Ž).
| Izraz | Opis |
|---|---|
| . | Točka pronalazi bilo koji znak. |
| [ ] | Pronalazi bilo koji znak koji se nalazi u uglatim zagradama. Na primjer [abc] pronalazi a, b i c, ali ne i ostale znakove. |
| [ - ] | Pronalazi bilo koji znak koji se nalazi u uglatim zagradama između ova dva znaka. Na primjer [a-c] pronalazi a, b i c, ali ne i ostale znakove. |
| [^ ] | Pronalazi bilo koji znak osim onih koji se nalaze u uglatim zagradama. Na primjer [^abc] pronalazi sve znakove osim a, b i c. |
| ^ | Ukoliko je prvi znak regularnog izraza označava da izraz mora biti pronađen na početku linije (u Microsoft Wordu odlomka). |
| $ | Znak dolar na kraju regularnog izraza označava da izraz mora biti pronađen na kraju linije (u Microsoft Wordu odlomka). |
| * | Znak * pronalazi 0 ili više puta prethodni znak. Na primjer bo* će pronaći b, bo i boo. |
| + | Znak + pronalazi jednom ili više puta prethodni znak. Na primjer bo* će pronaći bo i boo, ali neće b. |
| ? | Znak ? pronalazi niti jednom ili jednom prethodni znak. Na primjer bo? će pronaći b i bo, ali neće boo. |
| {n} | Gdje je n broj, pronalazi prethodni znak točno n puta. Na primjer o{2} pronalazi točno oo. |
| {n,} | Gdje je n broj, pronalazi prethodni znak najmanje n puta. Na primjer o{2,} pronalazi oo, ooo, oooo, itd. |
| {n,m} | Gdje su n i m brojevi, pronalazi prethodni znak najmanje n, a najviše m puta. Na primjer o{2,3} pronalazi oo i ooo. |
| ( ) | Pronalazi bilo koju sekvencu unutar zagrada. Na primjer (ab)+ pronalazi ab, abab, ababab. Zagrade nam služe za grupiranje znakova, tako da kvantifikatori '*', '+', '?' i {} na njih gledaju kao na jedan znak. |
| | | Logički ILI operator. Na primjer prvo|drugo pronalazi prvo ili drugo, dok R(1|2) pronalazi R1 ili R2. |
| \ | Obrnuta kosa crta tretira specijalne znakove literalno. Na primjer znak + označava pronađi prethodni znak jednom ili više puta, dok \+. Pronalazi baš +. |
| \n | Pronalazi znak kraja linije. |
| \r | Pronalazi carriage-return znak. U Windowsima se kraj linije označava s \n\r, ali će i sami '\n' u većini programa pronaći kraj linije. |
| \t | Pronalazi tabulator. |
| \a,\e,\f,\v | Osim \n, \r i \t ostali kontrolni znakovi su praktično izumrli, pa ih ovdje nema potrebe opisivati. |
| Izraz | Opis |
|---|---|
| \C | Pronalazi bilo koji znak. Ekvivalentno točki ('.'). |
| \d | Pronalazi broj (digit). Ekvivalentno izrazu [0-9]. |
| \D | Pronalazi bilo koji znak osim brojeva. Ekvivalentno izrazu [^0-9]. |
| \l | Pronalazi bilo koje malo slovo (lower case) uključujući i internacionalna slova. Za hrvatski jezik ekvivalentno izrazu [a-zčćđšž]. |
| \L | Pronalazi bilo koji znak osim malog slova. Za hrvatski jezik ekvivalentno izrazu [^a-zčćđšž]. |
| \s | Pronalazi bilo koji razmak (space) uključujući i tabulatore. Ekvivalentno izrazu [ \t\n\r\f\v]. |
| \S | Pronalazi bilo koji znak koji nije razmak (tabulator). Ekvivalentno izrazu [^ \t\n\r\f\v]. |
| \u | Pronalazi bilo koje veliko slovo (upper case)uključujući i internacionalna slova. Za hrvatski jezik ekvivalentno izrazu [A-ZČĆĐŠŽ]. |
| \U | Pronalazi bilo koji znak osim velikih slova. Za hrvatski jezik ekvivalentno izrazu [^A-ZČĆĐŠŽ]. |
| \w | Pronalazi bilo koji word znak. Word znakovi su slova, brojevi i podvučeno. Uglavnom irelevantno za obične korisnike, naime radi se o znakovima koji se u C/C++ jeziku mogu koristiti za varijable, funkcije itd. |
| \W | Pronalazi bilo koji osim word znakova. |
| \0dd | Pronalazi znak s ovim oktalnim ASCII/ANSI kodom. Gdje je dd jedan ili više oktalnih brojeva. |
| \xXX | Pronalazi znak s ovim heksadecimalnim ASCII/ANSI kodom. Gdje je xx jedan ili heksadecimalni broj. |
| \Q | Svi znakovi koji slijede nakon ovog znaka sve do \E znaka se tretiraju literalno. |
| \Q | Zatvara slijed literalnih znakova započet s \Q znakom. |
Svi znakovi osim ".", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^" "\" and "$" su literalni znakovi. Prethodno popisani znakovi postaju literalni ako ispred njih prethodi znak "\". Literalni znak je onaj znak koji pronalazi sam sebe.
Nema
Odvjetnički ured 4.1.0.93 (Novije verzije mogu imati i dodatne izraze).