Regularni izraz (regex) je zaporedje znakov, ki določajo iskalni vzorec. Tukaj je opisano, kako napišete regularne izraze:
- Začnite z razumevanjem posebnih znakov, ki se uporabljajo v regularnem izrazu, kot so ., *, +, ? in drugi.
- Izberite programski jezik ali orodje, ki podpira regex, na primer Python, Perl ali grep.
- Napišite svoj vzorec s posebnimi in dobesednimi znaki.
- Za iskanje vzorca v nizu uporabite ustrezno funkcijo ali metodo.
Primeri:
- Če želite ujemati zaporedje dobesednih znakov, preprosto vpišite te znake v vzorec.
- Če želite ujemati en sam znak iz nabora možnosti, uporabite oglate oklepaje, npr. [0123456789] se ujema s katero koli števko.
- Če želite ujemati nič ali več pojavitev prejšnjega izraza, uporabite simbol zvezdice (*).
- Če želite ujemati eno ali več pojavitev prejšnjega izraza, uporabite simbol plus (+).
- Pomembno je vedeti, da je lahko regularni izraz zapleten in ga je težko brati, zato je priporočljivo uporabljati orodja, kot so preizkuševalci regularnih izrazov, za odpravljanje napak in optimizacijo vzorcev.
Regularni izraz (včasih imenovan tudi racionalni izraz) je zaporedje znakov, ki določajo vzorec iskanja, predvsem za uporabo pri ujemanju vzorcev z nizi ali ujemanju nizov, tj. podobnih operacij iskanja in zamenjave. Regularni izrazi so posplošen način za ujemanje vzorcev z zaporedji znakov. Uporablja se v vseh programskih jezikih, kot so C++, Java in Python.
Kaj je regularni izraz in zakaj je tako pomemben?
Regex se uporablja v Google Analytics pri ujemanju URL-jev pri podpornem iskanju in zamenjavah v najbolj priljubljenih urejevalnikih, kot so Sublime, Notepad++, Brackets, Google Docs in Microsoft Word.
Example : Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$> Zgornji regularni izraz lahko uporabite za preverjanje, ali je dani niz znakov e-poštni naslov ali ne.
Kako napisati regularne izraze?
Za pisanje regularnih izrazov se uporabljajo nekateri elementi, kot je navedeno spodaj:
1. Ponavljalniki ( *, + in { } )
Ti simboli delujejo kot ponavljalci in sporočajo računalniku, da je treba predhodni znak uporabiti več kot le enkrat.
2. Simbol zvezdice ( * )
Računalniku pove, naj se ujema s predhodnim znakom (ali nizom znakov) 0 ali večkrat (do neskončno).
Example : The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>
3. Simbol plus ( + )
Računalniku sporoči, naj ponovi prejšnji znak (ali niz znakov) vsaj enkrat ali večkrat (do neskončno).
niz v json java
Example : The regular expression ab+c will give abc, abbc, abbbc, … and so on.>
4. Zavit oklepaj { … }
Računalniku pove, naj ponovi prejšnji znak (ali nabor znakov) tolikokrat, kot je vrednost v tem oklepaju.
Example : {2} means that the preceding character is to be repeated 2 times, {min,} means the preceding character is matches min or more times. {min,max} means that the preceding character is repeated at least min & at most max times.> 5. Nadomestni znak ( . )
Simbol pike lahko nadomesti katerikoli drug simbol, zato se imenuje nadomestni znak.
Example : The Regular expression .* will tell the computer that any character can be used any number of times.>
6. Izbirni znak (?)
Ta simbol pove računalniku, da je lahko predhodni znak prisoten v nizu, ki ga je treba ujemati, ali pa tudi ne.
Example : We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be present in the name of file format.>
7. Simbol kazalke ( ^ ). ( Nastavitev položaja za tekmo)
Simbol kazalke pove računalniku, da se mora ujemanje začeti na začetku niza ali vrstice.
pete davidson
Example : ^d{3} will match with patterns like '901' in '901-333-'.> 8. Simbol dolarja ( $ ).
Računalniku pove, da se mora ujemanje pojaviti na koncu niza ali pred na koncu vrstice ali niza.
Example : -d{3}$ will match with patterns like '-333' in '-901-333'.> 9. Razredi znakov
Razred znakov se ujema s katerim koli naborom znakov. Uporablja se za ujemanje z najosnovnejšimi elementi jezika, kot so črka, številka, presledek, simbol itd.
s : ujema se s katerim koli presledkom, kot sta presledek in tabulator.
S : ujema se z vsemi znaki, ki niso presledki.
d : ujema se s katerim koli znakom števke.
D: ujema z vsemi neštevnimi znaki.
In : ujema kateri koli besedni znak (v bistvu alfanumerični)
IN : ujema se s katerim koli nebesednim znakom.
: ujema se s katero koli besedno mejo (to bi vključevalo presledke, pomišljaje, vejice, podpičja itd.
[niz_znakov]: Ujema se s katerim koli posameznim znakom v set_of_characters. Privzeto je ujemanje občutljivo na velike in male črke.
Example : [abc] will match characters a,b and c in any string.>
10. [^niz_znakov] Negacija:
Ujema se s katerim koli posameznim znakom, ki ni v set_of_characters. Privzeto je ujemanje občutljivo na velike in male črke.
Example : [^abc] will match any character except a,b,c .>
11. [prva-zadnja] Obseg znakov:
Ujema se s katerim koli posameznim znakom v obsegu od prvega do zadnjega.
Example : [a-zA-z] will match any character from a to z or A to Z.>
12. Simbol za pobeg ( )
Če se želite ujemati z dejanskimi znaki '+', '.' itd., pred tem znakom dodajte poševnico nazaj ( ). To bo računalniku sporočilo, naj naslednji znak obravnava kot iskalni znak in ga upošteva kot ujemajoči se vzorec.
Example : d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>
13. Združevanje znakov ( )
Niz različnih simbolov regularnega izraza je mogoče združiti v skupine, da delujejo kot ena enota in se obnašajo kot blok; za to morate regularni izraz zaviti v oklepaj ( ).
prelivanje besed css
Example : ([A-Z]w+) contains two different elements of the regular expression combined together. This expression will match any pattern containing uppercase letter followed by any character.>
14. Navpična vrstica ( | )
Ujema se s katerim koli elementom, ločenim z znakom navpične črte (|).
Example : th(e|is|at) will match words - the, this and that.>
15. številka
Referenca nazaj: omogoča, da se predhodno ujemajoči se podizraz (izraz, zajet ali zaprt v oklepajih) naknadno identificira v istem regularnem izrazu. pomeni, da se bo skupina v n-tem oklepaju ponovila na trenutnem položaju.
Example : ([a-z])1 will match ee in Geek because the character at second position is same as character at position 1 of the match.>
16. Kako (?# komentar)
Komentar v vrstici: Komentar se konča pri prvem zaključnem oklepaju.
Example : A(?#This is an inline comment)w+>
17. # [do konca vrstice]
Komentar načina X. Komentar se začne z neubežnim # in se nadaljuje do konca vrstice.
Example : (?x)Aw+#Matches words starting with A>