Sodobni razvijalci se vsak dan znajdejo v situaciji, ko morajo spremeniti kodo v stotinah ali celo tisočih datotek. Ročno urejanje bi trajalo dneve – s pravimi orodji pa le nekaj sekund.
V tem članku se bralec seznani z regularnimi izrazi (Regex), ki so pravzaprav “iskanje in zamenjava” na steroidih. Vodnik temelji na praksi v PHPStorm-u, vendar enako velja za VS Code in druge urejevalnike.
1. Kaj so regularni izrazi?
Regularni izrazi (ang. Regular Expressions, krajšano Regex) so vzorci, ki omogočajo iskanje, ujemanje in spreminjanje besedila po določenih pravilih.
Namesto iskanja točno določene besede razvijalec Regex-u poda vzorec. To je podobno, kot če bi iskali vse hiše z rdečo streho namesto ene konkretne hiše.
2. Kako vključiti Regex v PHPStorm-u
Ob ukazu Ctrl + R (Replace) ali Ctrl + Shift + R (Replace in Path) mora uporabnik obvezno označiti ikono .* — ta aktivira Regex način.
3. Primer 1: Najdi vse tabele s številkami
Uporabnik želi najti vse razrede za tabele, ki se končajo s številko (tabela-1, tabela-2, tabela-3 ...).
Išči: tabela-\d+
Kaj to pomeni?
\d+pomeni “katerakoli številka, ki se ponovi enkrat ali večkrat”.- Rezultat: PHPStorm označi vse tabele od 1 do 999.
4. Primer 2: Čiščenje HTML oznak
Uporabnik želi očistiti HTML oznake, vendar obdržati vsebino. Recimo, da želi izbrisati vse <span> oznake, ki delajo zmešnjavo.
Išči: <span>(.*?)</span> Zamenjaj z: $1
Kaj to pomeni?
$1pove PHPStorm-u: “Odstrani span, vsebino pa pusti pri miru.”(.*?)ujame vse, kar je med oznakama (ne-požrešno ujemanje).
5. Primer 3: Dodaj razred na h3 elemente
Uporabnik želi najti vse <h3> oznake brez razreda in jim dodati nov razred.
Išči: <h3> Zamenjaj z: <h3 class="tvoj-nov-razred">
6. Bazične sekvence Regex-a
| Simbol | Opis | Primer |
|---|---|---|
\d |
katerakoli številka | 0–9 |
\w |
črka ali številka | A–Z, a–z, 0–9 |
. |
katerikoli znak | presledek, črka, simbol |
\s |
presledek | presledek, tabulator, nova vrstica |
(.*?) |
ujemi vse med oznakami | vsebina med oklepaji |
\d+ |
ena ali več številk | 1, 27, 1000 ... |
7. Real-world uporaba
Regex je pogosto rešilna bilka. Predstavljati si je treba, da je v 3000 datotekah narobe napisan PHP include ali pa je treba vsem slikam dodati atribut loading="lazy". Ročno delo bi trajalo mesece. Z Regexom pa:
- Uporabnik vpiše vzorec.
- PHPStorm pokaže predogled.
- Replace All posodobi vseh 3000 datotek v nekaj sekundah.
8. Verifikacija e-pošte in telefonskih številk
Regex se pogosto uporablja za preverjanje pravilnih formatov:
- E-pošta: Ali niz vsebuje @ in piko na pravem mestu?
- Telefonske številke: Ali niz vsebuje 3 številke, vezaj in nato še 6 številk?
- Clean code: Iskanje vseh <iframe> oznak brez atributa width.
Povzetek
| Koncept | Opis | Vrednost |
|---|---|---|
| Vklop Regex | Ikona .* v PHPStorm iskalniku | Osnova za napredne operacije |
| \d+ | Številka ali več številk | Najde vse numerične vrednosti |
| (.*?) | Ujame vsebino med oznakami | Ohrani podatke pri čiščenju HTML |
| $1 | Referenca na prvo ujeto skupino | Ohrani ujeto vsebino ob zamenjavi |
| Backup pred Replace All | Git commit ali kopija mape | Zaščita pred nepopravljivimi napakami |
Z obvladovanjem Regex-a bralec prihrani ure dela in postane bistveno bolj produktiven razvijalec.