Reguliari išraiška (regex) yra simbolių seka, apibrėžianti paieškos modelį. Štai kaip rašyti įprastas išraiškas:
algoritmo gylis pirmoji paieška
- Pradėkite suprasti specialiuosius simbolius, naudojamus regex, pavyzdžiui, '.' '*' '+' '?' Ir dar daugiau.
- Pasirinkite programavimo kalbą ar įrankį, kuris palaiko „Regex“, pavyzdžiui, „Python Perl“ ar „Grep“.
- Parašykite savo modelį naudodami specialiuosius simbolius ir pažodinius simbolius.
- Naudokite tinkamą funkciją ar metodą, kad galėtumėte ieškoti modelio eilutėje.
Pavyzdžiai:
- Norėdami suderinti pažodinių simbolių seką, tiesiog rašykite tuos personažus modelyje.
- Norėdami suderinti vieną simbolį iš galimybių rinkinio, naudokite kvadratinius laikiklius, pvz. [0123456789] atitinka bet kokį skaitmenį.
- Norėdami suderinti nulį ar daugiau ankstesnės išraiškos įvykių, naudokite žvaigždės (*) simbolį.
- Norėdami suderinti vieną ar daugiau ankstesnės išraiškos įvykių, naudokite pliuso (+) simbolį.
- Svarbu pažymėti, kad „Regex“ gali būti sudėtingas ir sunkiai skaitomas, todėl norint suderinti ir optimizuoti jūsų modelius, rekomenduojama naudoti tokius įrankius kaip „Regex Testers“.
Reguliari išraiška (kartais vadinama racionalia išraiška) yra simbolių seka, apibrėžianti paieškos modelį, daugiausia skirtą naudoti modelio atitikime su eilutėmis ar eilutėmis, t. Y. „Raskite ir pakeiskite“ kaip operacijas. Reguliarios išraiškos yra apibendrintas būdas suderinti modelius su simbolių sekomis. Jis naudojamas kiekvienoje programavimo kalboje, tokioje kaip „C ++ Java“ ir „Python“.
Kas yra įprasta išraiška ir kas daro ją tokia svarbi?
Regex naudojamas „Google Analytics“ URL atitikime palaikant paiešką ir pakeičia populiariausius redaktorius, tokius kaip „Sublime Notepad ++“ skliausteliuose „Google“ dokumentai ir „Microsoft Word“.
Example : Regular expression for an email address :
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{25})$
Aukščiau pateikta įprastinė išraiška gali būti naudojama tikrinant, jei nurodytas simbolių rinkinys yra el. Pašto adresas, ar ne.
Kaip rašyti įprastas išraiškas?
Yra tam tikrų elementų, naudojamų rašyti įprastas išraiškas, kaip minėta toliau:
1. Pakartoti (* + ir {})
Šie simboliai veikia kaip kartotuvai ir sako kompiuteriui, kad ankstesnis simbolis turi būti naudojamas ne tik vieną kartą.
2. Žvaigždutės simbolis ( *)
Tai liepia kompiuteriui atitikti ankstesnį simbolią (arba simbolių rinkinį) 0 ar daugiau kartų (iki begalinio).
Example : The regular expression ab*c will give ac abc abbc abbbc….and so on 3. Pliuso simbolis ( +)
Tai liepia kompiuteriui pakartoti ankstesnį simbolį (arba simbolių rinkinį) vienu ar daugiau kartų (iki begalinio).
globalūs kintamieji js
Example : The regular expression ab+c will give abc abbc
abbbc … and so on.
4. Garbanoti petnešos {…}
Tai liepia kompiuteriui pakartoti ankstesnį simbolią (arba simbolių rinkinį) tiek kartų, kiek vertė šio laikiklio viduje.
Example : {2} means that the preceding character is to be repeated 2
times {min} means the preceding character is matches min or more
times. {minmax} means that the preceding character is repeated at
least min & at most max times.
5. pakaitos (.)
DOT simbolis gali užimti bet kokį kitą simbolį, todėl jis vadinamas pakaitos simboliu.
Example :
The Regular expression .* will tell the computer that any character
can be used any number of times.
6. Pasirenkamas personažas (?)
Šis simbolis sako kompiuteriui, kad ankstesnis simbolis gali būti arba jo negali būti suderintoje eilutėje.
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. Caret ( ^) simbolis ( Rungtynių nustatymo padėtis)
„Caret“ simbolis sako kompiuteriui, kad rungtynės turi prasidėti stygos ar eilutės pradžioje.
Example : ^d{3} will match with patterns like '901' in '901-333-'.8. Dolerio ($) simbolis
Jis sako kompiuteriui, kad atitiktis turi įvykti eilutės pabaigoje arba prieš N eilutės pabaigoje ar eilutėje.
Example : -d{3}$ will match with patterns like '-333' in '-901-333'.9. Charakterio klasės
Veikėjų klasė atitinka bet kurį iš simbolių rinkinį. Jis naudojamas taip, kad atitiktų pagrindinį kalbos elementą, pavyzdžiui, raidę.
s : atitinka visus „WhiteSpace“ simbolius, tokius kaip „Space“ ir „Tab“.
S : atitinka bet kokius ne baltaodžių personažus.
d : atitinka bet kokį skaitmens simbolią.
D: atitinka bet kokius skaitmeninius simbolius.
Į : atitinka bet kokį žodžio simbolią (iš esmės raidinis-skaitmeninis)
Į : atitinka bet kokį žodžio veikėją.
b : atitinka bet kokią žodžių ribą (tai apimtų tarpų brūkšnelius kableliais pusiau kolonais ir kt.
[set_of_characters]: Suderina bet kurį „Set_of_Characters“ veikėją. Pagal numatytuosius nustatymus rungtynės yra jautrūs atvejams.stygų masyvas
Example : [abc] will match characters ab and c in any string.10. [^Set_of_Characters] Neigimas:
Suderina bet kurį vieną simbolį, kurio nėra SET_OF_CHARACTERS. Pagal numatytuosius nustatymus rungtynės yra jautrūs atvejams.
Example : [^abc] will match any character except abc .11. [Pirmasis paskutinis] Simbolių diapazonas:
Atitinka bet kurį atskirą diapazono veikėją nuo pirmojo iki paskutinio.
Example : [a-zA-z] will match any character from a to z or A to Z.12. Pabėgimo simbolis ()
Jei norite suderinti su tikraisiais „+“ “.“. ETC simboliai prieš tą veikėją prideda nugaros brėžinį (). Tai lieps kompiuteriui traktuoti šį simbolią kaip paieškos simbolią ir apsvarstys jį atitikimo modeliui.
Example : d+[+-x*]d+ will match patterns like '2+2'
and '3*9' in '(2+2) * 3*9'.
13. Grupavimo simbolių ()
Įvairių reguliariosios išraiškos simbolių rinkinį galima sugrupuoti kartu, kad jis veiktų kaip vienas vienetas, ir elgtis kaip blokas, jums reikia įvesti įprastą išraišką skliausteliuose ().
turbo c++ parsisiųsti
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. Vertikali juosta (|)
Atitinka bet kurį elementą, atskirtą vertikalios juostos (|) simboliu.
Example : th(e|is|at) will match words - the this and that.15. Skaičius
Backreference: Leidžia anksčiau suderinti sub-ekspresiją (išraišką, užfiksuotą arba uždarą apskritimo skliausteliuose), vėliau nustatyta ta pačia įprasta išraiška. n reiškia, kad N-THT laikiklyje uždengta grupė bus pakartota esant dabartinei padėtyje.
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. Kaip (?# Komentaras)
Inline komentaras: Komentaras baigiasi pirmame uždarymo skliausteliuose.
Example : bA(?#This is an inline comment)w+b17. # [iki eilutės pabaigos]
X režimo komentaras. Komentaras prasideda nuo neišsaugoto # ir tęsiasi iki eilutės pabaigos.
Example : (?x)bAw+b#Matches words starting with A