Täydellinen opas regex-sääntöihin: mitä ne ovat, miten ne toimivat ja käytännön esimerkkejä

  • Regex-sääntöjen avulla voit hakea, validoida ja muuntaa tekstiä tehokkaasti.
  • Sen syntaksi käyttää literaalimerkkejä, metamerkkejä ja kvanttoreja tarkkojen kuvioiden määrittelemiseen.
  • Regex on välttämätön ohjelmoinnissa, järjestelmänvalvonnassa, hakukoneoptimoinnissa ja edistyneessä datan muokkaamisessa.

Regex-sääntöjen esimerkki

Säännölliset lausekkeet, jotka tunnetaan yleisesti nimellä Regex, edustavat yhtä tehokkaimmista ja monipuolisimmista resursseista kehityksen, järjestelmänhallinnan ja suurten tekstimäärien käsittelyn maailmassa. Monille käyttäjille ja ohjelmoijille, jotka kokeilevat sitä ensimmäistä kertaa, sen syntaksi voi kuitenkin olla arvoituksellinen tai jopa hämmentävä. Regex-sääntöjen ja -mallien hallinta mahdollistaa tekstin hakemisen, suodattamisen, validoinnin ja muuntamisen vertaansa vailla olevalla tehokkuudella ja joustavuudella.

Oletko koskaan miettinyt, miten voit löytää monimutkaisia ​​malleja dokumenteista, validoida lomakkeita, muuntaa tietoja tai automatisoida hakuprosesseja IT-projekteissasi? Oletpa sitten kehittäjä, järjestelmänvalvoja tai vain utelias käyttäjä, tämä artikkeli on sinua varten. Valmistaudu kattavaan, käytännölliseen ja ennen kaikkea selkeään oppaaseen regex-säännöistä ja niiden soveltamisesta kaikenlaisissa konteksteissa.

Mitä ovat regex-säännöt tai säännölliset lausekkeet?

Säännölliset lausekkeet (Regex, lyhenne englanniksi Säännöllinen lauseke) ovat merkkijonoja tai -kuvioita, jotka pystyvät määrittelemään sääntöjä tekstien löytämiseksi, validoimiseksi tai käsittelemiseksi toisten tekstien sisällä. Kuvittele, että etsit tiettyjä lauseita, tiettyjä muotoja (kuten sähköpostiosoitteita, päivämääriä, puhelinnumeroita), tietyt kriteerit täyttäviä nimiä tai haluat korvata osia tekstistä kerralla: kaikissa näissä tapauksissa Regex on ihanteellinen työkalu.

Perusidea on Kuvaile symbolien, kirjainten ja erikoisoperaattoreiden avulla malli, jota paikannettavan, validoitavan tai muokattavan tekstin on täytettävä.Jos esimerkiksi haluat löytää kaikki numerot lausekkeesta, voit määrittää yksinkertaisen mallin, joka sanoo "mikä tahansa numeerinen merkki" (kuten \d). Jos haluat jotain edistyneempää, voit luoda monimutkaisia ​​sääntöjä, kuten: ”kaikki merkkijonot, jotka alkavat 'Kopio'-sanalla ja päättyvät numeroon.”

Regex-syntaksi

Regexin historia ja kehitys

Säännölliset lausekkeet syntyivät 1900-luvun puolivälissä formaalin logiikan ja automaattiteorian alalla. Sen ensimmäinen käytännön käyttökohde oli UNIX-pohjaisissa järjestelmissä, joissa käytettiin apuohjelmia, kuten ed, grep, jano y awkMyöhemmin standardi POSIX laajensi syntaksiaan ja sisällytti sen lukuisiin ympäristöihin. Myöhemmin kieli Perl vei Regexin uudelle tasolle lisäämällä uusia ominaisuuksia ja tekemällä niistä suosittuja kehittäjäyhteisössä.

Nykyhetkessä Regex on sisäänrakennettu useimpiin ohjelmointikieliin (JavaScript, Python, Java, C#, PHP, Ruby jne.) sekä edistyneitä tekstieditorien, käyttöjärjestelmien, web-kehysten ja useiden komentoriviapuohjelmien kanssa. Tämä tekee regex-säännöistä todella universaalin kielen tekstin käsittelyyn missä tahansa tietojenkäsittelyympäristössä.

Mihin Regex-sääntöjä käytetään?

Las Regex-säännöt Niitä ei käytetä vain hakuun, vaan ne myös validoivat, poimivat, muuntavat ja mahdollistavat suurten tietomäärien suodattamisen tai muokkaamisen muutamassa sekunnissa.

  • Kuvioiden löytäminen suurista teksteistä: Etsi sähköposteja, URL-osoitteita, nimiä, numeroita, päivämääriä ja paljon muuta – jopa valtavista tiedostoista tai tietokannoista – ilman manuaalista vaivaa.
  • Vahvista käyttäjän syöte: Tarkistaa, täyttääkö salasana vaatimukset, onko puhelinnumero tai sähköpostiosoite oikein ennen sen tallentamista.
  • Muokkaa ja korvaa tekstiä: Korvaa tekstin tiettyjä osia HTML-tagien poistamisesta tietomuotojen normalisointiin.
  • Automatisoi prosesseja: Suodata lokeja, muunna listoja, analysoi lokitiedostoja tai nimeä tiedostoja uudelleen massoittain erittäin tarkkojen sääntöjen mukaisesti.

Regexin perusteet: Peruskäsitteet

Regex-säännöt koostuvat literaalimerkkien ja metamerkkien yhdistelmästä. Näiden elementtien ymmärtäminen on hyödyllisten mallien rakentamisen perusta.

1. Kirjaimelliset merkit

Literaalimerkki edustaa täsmälleen sitä merkkiä, jota haluat etsiä. Esimerkiksi ilmaus casa paikantaa kohdetekstistä täsmälleen kyseisen sekvenssin, tuossa järjestyksessä.

2. Metamerkit: Regexin voima

Metamerkit ovat erikoissymboleja, jotka laajentavat säännöllisten lausekkeiden merkitystä antaen niille monipuolisuutta ja tehoa. Yleisimpiä ovat:

  • . Piste edustaa mitä tahansa merkkiä rivinvaihtoa lukuun ottamatta.
  • [] Sulkeet määrittelevät sallittujen merkkien luokat tai joukot.
  • ^ Circumfiksi voi merkitä joko rivin/sanan alkua tai, jos se on hakasulkeissa, joukon negaatiota.
  • $ Dollarisymboli osoittaa rivin tai tekstin loppua.
  • * Tähtimerkin avulla voit etsiä edellisen elementin "nolla tai useampia toistoja".
  • + Plus-merkki etsii "yhtä tai useampaa toistoa".
  • ? Ilmaisee, että edellinen elementti on valinnainen (nolla tai yksi kerta).
  • () Sulkeet ryhmittelevät lausekkeen osia kvanttorien käyttämiseksi, aliryhmien poimimiseksi tai vaihtoehtojen määrittelemiseksi.
  • | Pystysuora palkki edustaa loogista vaihtoehtoa "tai".
  • \ Kenoviiva korvaa seuraavan merkin erikoismerkityksen tai tuo mukanaan lyhennettyjä sarjoja (kuten \d, \w, \s).

3. Kvantitaattorit: toiston hallinta

Kvanttifioijien avulla voit määrittää, kuinka monta kertaa merkki, luokka tai ryhmä toistetaan:

  • *Nolla tai useampia toistoja.
  • +: Kerran tai useamman kerran.
  • ?Kerran tai ei ollenkaan (valinnainen).
  • {n}Täsmälleen n toistoja.
  • {n,}: Vähintään n kertaa (ei enimmäismäärää).
  • {n,m}: Välillä n y m toistoja.

4. Merkkiluokat ja lyhenteet

Merkkiluokat antavat meille mahdollisuuden rajata hakuamme entisestään:

  • [Az]: mikä tahansa pieni kirjain.
  • [AZ]: iso kirjain.
  • [0-9]: mikä tahansa numero.
  • [Abc]kirjain a, b tai c.
  • [^xyz]: mikä tahansa merkki paitsi x, i z.
  • \d: desimaaliluku (vastaa numeroa [0–9]).
  • \D: mikä tahansa merkki, joka Nro olla numero.
  • \w: sanamerkki (kirjain, numero tai alaviiva; vastaa merkkiä [a-zA-Z0-9_]).
  • \W: mikä tahansa ei-sanallinen merkki.
  • \s: tyhjä välilyönti (välilyönti, tabulaattori, rivinvaihto).
  • \S: mikä tahansa muu merkki kuin välilyönti.

5. Ankkurit: kuvion sijoittaminen tekstiin

Ankkureiden avulla voit sijoittaa kuvioita rivin alkuun tai loppuun tai sanojen alkuun/loppuun.

  • ^: rivin tai tekstin alku.
  • $: rivin tai tekstin loppu.
  • \b: sanaraja (alku tai loppu).
  • \B: ei-sanallinen rajapiste (sisäpuoli).

Käytännön esimerkkejä regex-säännöistä

Katsotaanpa nyt, miten nämä säännöt soveltuvat tosielämän tilanteisiin, sekä yksinkertaisiin että vaativiin, jotta voit nopeasti soveltaa oppimaasi käytäntöön.

  • Sähköpostien vahvistaminen: ^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$
  • DNI-numeroiden paikantaminen: \b\d{8}[- ]?[trwagmyfpdxbnjzsqvhlcke]?\b
  • IP v4 -osoitteiden havaitseminen: ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?!$)|$)){4}$
  • URL-osoitteiden poimiminen HTML-tageista:
  • Kommentoitujen rivien tunnistaminen Javassa: //[^\r\n]*[\r\n]

Edistynyt logiikka ja kuvioiden mukauttaminen

Regexin avulla voit rakentaa monimutkaisia ​​kuvioita yhdistämällä ryhmiä, vuorotteluja, viittauksia ja edistyneitä kvanttoreita, jolloin voit suodattaa, validoida tai paikantaa hyvin tarkkoja tietoja.

Ryhmät ja yhdistykset

Sulkemalla osan kuviosta luomme ryhmän. Näin voimme soveltaa kvanttoreita kokonaisiin ryhmiin, poimia tietoa tai viitata alikuvioihin.

Esimerkiksi lauseke ((äiti)+b) löytää vastineen ”mab” tai ”mamab”, mutta ei ”maab”. Ryhmiin voidaan viitata myöhemmin käyttämällä \1, \2jne., ihanteellinen samankaltaisten toistuvien kuvioiden löytämiseen.

Vaihtoehdot (|): looginen "tai" säännöllisessä lausekkeessa

Pystysuora palkki | voit määrittää vaihtoehtoja: kaikki tällä symbolilla erotetut kuviot ovat kelvollisia. Esimerkiksi (poika|tyttö) löytää molemmat sanat.

Escape-metamerkit \-näppäimellä

Kenoviiva \ On ratkaisevan tärkeää neutraloida metahahmon erityinen merkitys tai ottaa käyttöön lyhennettyjä sekvenssejä. Esimerkiksi ”\.” etsii kirjaimellista pistettä, ”\?” kysymysmerkkiä, ”\\” itse kenoviivaa jne.

Ahneet ja laiskat kvanttorit

Oletusarvoisesti säännöllisten lausekkeiden kvanttorit ovat ahneita: ne ottavat niin paljon tekstiä kuin mahdollista. ? Se muutetaan muotoon ”laiska”, joka tallentaa tarvittavan vähimmäismäärän.

Esimerkiksi: koira löytää pisimmän merkkijonon merkkijonojen "perr" ja "o" välillä, kun taas koira ottaa talteen minimin.

Väitteet ja ympärikatsomukset

Ennakointi- ja jälkikäteen tapahtuvat väitteet mahdollistavat ehtojen validoinnin "ennen" tai "jälkeen" osuman kuluttamatta tekstin merkkejä.

  • Positiivinen tulevaisuuskuva: (?=kuvio) Tarkista, että nykyisen sijainnin jälkeen löytyy "kuvio".
  • Negatiivinen ennakointi: (?!kuvio) Tarkista, että alla EI ole ”kuviota”.
  • Positiivinen/negatiivinen taaksepäin katsominen: (?<=kuvio) y (? He tekevät saman asian "taaksepäin".

Regexin käytännön sovellukset todellisessa maailmassa

Regexiä käytetään monilla eri aloilla ja jokapäiväisissä tehtävissä:

  • Lomakkeen vahvistussähköpostiosoitteet, puhelinnumerot, nimet, vahvat salasanat.
  • Lokien käsittely ja järjestelmän auditointiKuvioiden etsiminen lokitiedostoista, virheiden ja varoitusten poimiminen.
  • SEO ja URL-osoitteiden hallintaURL-osoitteiden uudelleenkirjoittaminen .htaccess-tiedostossa, parametrisuodattimet, hakusegmentointi.
  • Tekstin joukkomuokkausSiivoa HTML-tagit, poista tarpeettomat välilyönnit, normalisoi laskentataulukoiden tiedot, mukauta vanhaa koodia.
  • Verkkokehitys ja automatisointiautomatisoitu testaus, palvelinsääntöjen konfigurointi, kaavinkehitys.

Erilaiset regex-maut ja -moottorit

Kaikki regex-toteutukset eivät tue samoja ominaisuuksia; niitä on erilaisia ​​"makuja" käytetystä kielestä, työkalusta tai moottorista riippuen.

  • POSIX: UNIX-pohjainen alkukantainen syntaksi. Vähemmän kattava kuin Perl tai PCRE.
  • Perl/PCRE: Erittäin kattavat, ne tukevat lookuround-toimintoja, edistyneitä viittauksia, muokkaajia ja aliohjelmia.
  • JavaScript: Laajalti käytetty verkossa, yhteensopiva useimpien operaattoreiden kanssa, mutta taaksepäin katsomisessa on rajoituksia (paitsi moderneissa versioissa).
  • .NET ja muut kielet: Ne ovat yleensä yhteensopivia PCRE:n kanssa, mutta on aina suositeltavaa tutustua kielen omaan dokumentaatioon.

Siksi aina kun työskentelet tietyssä kontekstissa, tarkista, mitä tukea ja syntaksia Regex hyväksyy kyseisessä työkalussa tai kielessä.

Kuinka testata ja rakentaa omia regex-kuvioita

Paras tapa oppia säännöllisiä lausekkeita on harjoitella esimerkkien avulla ja käyttää verkossa saatavilla olevia live-testaustyökaluja.

  • regex101.com: voit kirjoittaa kuvioita, tarkistaa tuloksia, tarkastella selityksiä ja suorituskykytilastoja.
  • regexr.com: : loistavat vaiheittaiset ohjeet, visuaaliset grafiikat ja interaktiiviset esimerkit.
  • Visuaaliset selittimet ja koodigeneraattorit: ihanteellinen monimutkaisten kuvioiden ymmärtämiseen ja lausekkeiden luomiseen tyhjästä.
  • Verkkopelit ja -harjoituksetOpi pelaamalla ja ratkaise oikeita haasteita sisäistääksesi säännöllisten lausekkeiden toiminnan.

Yleisiä virheitä ja käytännön vinkkejä regexin hallitsemiseen

Regex on tehokas, mutta se voi olla myös hämmentävä. Nämä vinkit auttavat sinua välttämään yleisiä sudenkuoppia:

  • Escape-metahahmot kun etsit sen kirjaimellista arvoa. Käytä esimerkiksi \. asian ytimeen, \* tähden kohdalla \? kuulustelua varten.
  • Älä käytä pistettä (.) ja jokerimerkkiä .* liikaa. Ne ovat erittäin hyödyllisiä, mutta ne voivat palauttaa ei-toivottuja tuloksia, jos et määrittele kuviotasi hyvin.
  • Lisää ankkureita (^, $), kun haluat rajata kuvion rivin alkuun tai loppuun. ja välttää osittaisia ​​osumia.
  • Käytä tiettyjä kvanttoreita tarkkoja toistoja etsittäessä pelkkien *- tai +-merkkien sijaan.
  • Kokeile aina sekä positiivisia että negatiivisia esimerkkejä. Tällä tavoin voit havaita, kattaako kuvio kaikki tarvittavat tapaukset tuottamatta vääriä positiivisia tuloksia.
  • hajota ja hallitse: Jos sinulla on erittäin monimutkainen kuvio, rakenna se osiin ja yhdistä palaset lopussa.
  • Voit vapaasti tutustua lunttilappuihin, dokumentaatioon ja foorumeihin. nähdä esimerkkejä ja arkipäivän niksejä.

Regexin integrointi ohjelmointikieliin ja -työkaluihin

Regex on integroitu kaikkien tärkeimpien kielten yleisimpiin funktioihin. Joitakin esimerkkejä:

  • JavaScript: Menetelmät testata(), exec() RegExp-objektista ja metodeista ottelu(), Hae(), korvaa (), jakaa() merkkijonosta.
  • python: Moduuli re tarjoaa toimintoja, kuten Hae(), ottelu(), löydä kaikki (), sub(), Jne
  • PHP: Funciones preg_match(), raskauden_korvaus(), raskausjako() ja muut
  • .NET: clase regex edistyneillä menetelmillä ja PCRE-tuella.

Toimittajissa, kuten VSCode, Sublime, Atom tai Notepad++, voit käyttää myös säännöllistä lauseketta etsimiseen ja korvaamiseen. Ja UNIX-järjestelmissä apuohjelmat, kuten grep, jano y awk sisällyttää oman Regex-moottorinsa.

Regex hakukoneoptimoinnissa ja URL-osoitteiden hallinnassa

Regex on keskeinen osa URL-osoitteiden optimointia, web-reititystä ja dynaamista parametrien hallintaa alustoilla, kuten WordPress, Joomla ja verkkokauppa.

  • .htaccess ja mod_rewrite: Niiden avulla voit muuntaa rumia, parametreilla täytettyjä URL-osoitteita ystävällisiksi osoitteiksi säännöllisten lausekkeiden avulla. Tällä tavoin www.ejemplo.com/index.php?p=123 voidaan muuntaa www.ejemplo.com/articulo/titulo-amigable, mikä parantaa sekä hakukoneoptimointia että käyttökokemusta.
  • Parametrien suodatus: Poimi, puhdista tai muunna URL-osoitteen parametreja mukauttaaksesi tuloksia eri hakukonteksteihin.

Regex-sääntöjen avulla verkkovastaavat voivat luoda uudelleenkirjoitusmalleja, jotka tunnistavat ja muokkaavat URL-komponentteja parantaakseen rakennetta, optimointia ja hakukoneiden ja käyttäjien ymmärtämystä.

Edistyneet säännölliset lausekkeet: tekniikat ja resurssit

Regex ei salli vain suoria hakuja; se tukee ehdollista ryhmittelyä, aliohjelmia, rekursiota, takaviittauksia ja paljon muuta. Tämä tekee siitä välttämättömän työkalun monimutkaisiin tehtäviin.

  • Aliohjelmat ja takaviittaukset: Niiden avulla voit löytää toistuvia kuvioita, symmetrioita, sekvenssejä ja erittäin tarkkoja validointeja.
  • Ehdolliset: Suorita erilaisia ​​hakuja tai validointeja aiemmissa ryhmissä tallennettujen tietojen perusteella.
  • Rekursio: Jotkin edistyneet hakumoottorit mahdollistavat itseensä sovellettavien mallien määrittämisen, mikä on erittäin hyödyllistä käsiteltäessä strukturoitua dataa, kuten XML:ää tai JSON:ia.
  • Globaalit muokkaajat: (/g, /i, /m Perlissä/JavaScriptissä) mahdollistavat globaalit, kirjainkokoa riippumattomat tai usean rivin haut.

Olennaiset resurssit säännöllisten lausekkeiden oppimiseen

Jos haluat laajentaa tietämystäsi, näistä resursseista on sinulle hyötyä:

  • Wikipedia: Yksityiskohtaiset teoreettiset ja tekniset selitykset.
  • Regular-Expressions.info: Viitteitä ja opetusohjelmia kaikille tasoille.
  • Lunttilaput: Lyhyet yhteenvedot kaikista yleisimmistä operaattoreista, ryhmistä ja säännöistä.
  • Interaktiiviset opetusohjelmat: Suoraa harjoittelua harjoituksilla ja välittömällä palautteella.
  • Yhteisöt ja foorumit: Opi muilta käyttäjiltä, ​​kysy kysymyksiä ja jaa omia vinkkejäsi.

Regexien oppiminen tarjoaa suuren edun tekstinhallinnassa ja -käsittelyssä, sillä se mahdollistaa tehokkaammat haut, validoinnit, muunnokset ja automatisoinnin. Johdonmukaisuuden ja harjoittelun avulla regex-kuvioiden kirjoittaminen helpottuu ja muuttuu luonnollisemmaksi. Hyödynnä verkkotyökaluja ja käytännön harjoituksia, aloita yksinkertaisilla esimerkeillä ja etene monimutkaisempiin malleihin. Kun hallitset sen periaatteet, Regexistä tulee luonnollinen lisä kehitys- ja järjestelmänvalvojan arsenaaliisi, ja se helpottaa tehtäviä, jotka ovat aiemmin saattaneet tuntua monimutkaisilta tai työläiltä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: Actualidad-blogi
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.