raatools/

Regex-testaaja

Testaa regex-malleja live-vastaavuudella, lipuilla ja tiedoilla.

Mita ovat saannolliset lausekkeet?

Saannolliset lausekkeet (regex tai regexp) ovat kaavoja, joilla etsitaan merkkijonojen yhdistelmia tekstista. Ne ovat yksi tehokkaimmista tyokaluista ohjelmoinnissa — kaytettavissa validointiin, etsintaean, korvaamiseen ja datan poimimiseen.

Regex-kaava kuvaa merkkijoukon kayttaen erikoissyntaksia. Yksinkertaiset kaavat vastaavat kirjaimellista tekstia, kun taas metamerkit (kuten . * + ?) mahdollistavat joustavat hakukuviot kuten 'mika tahansa luku' tai 'sahkopostiosoite'.

Regex-testerin kayttohje

Syota saannollisen lausekkeen kaava kaavakenttaan, valitse haluamasi liput (g, i, m, s) ja liita testattava teksti. Tyokalu korostaa kaikki vastaavuudet reaaliajassa ja nayttaa kaappausryhmat.

Yleisia regex-kaavoja

  • Sahkopostiosoitteet: ^[^\s@]+@[^\s@]+\.[^\s@]+$ — vastaa tavallisia sahkopostimuotoja.
  • URL-osoitteet: https?://\S+ — vastaa URL-osoitteita, jotka alkavat http tai https.
  • IPv4-osoitteet: vastaa standardia pistenotaatiota kuten 192.168.1.1 kayttaen numerokvanttoreita.
  • Paivamaeaerat: vastaa paivamaeaeria VVVV-KK-PP-muodossa kayttaen nelinumeroista vuotta ja kaksinumeroista kuukautta ja paivaa.
  • Isolla alkukirjaimella alkavat sanat: [A-Z][a-z]+ — vastaa sanoja, jotka alkavat isolla kirjaimella.

Regex-liput selitettyna

  • g: g (Globaali): Loytaa kaikki vastaavuudet tekstista, ei vain ensimmaista.
  • i: i (Kirjainkoosta riippumaton): Kaava vastaa riippumatta kirjainkoosta.
  • m: m (Monirivinen): Saa ^ ja $ vastaamaan jokaisen rivin alkua ja loppua, ei vain koko merkkijonon.
  • s: s (Dotall): Saa . metamerkin vastaamaan myos rivinvaihtomerkkeja.

Kaappausryhmat

Sulut () luovat kaappausryhmia, jotka poimivat tiettyjae osia vastaavuudesta. Jokainen ryhma numeroidaan alkaen 1:sta. Esimerkiksi (\d+)-(\d+) kaappaa kaksi numeroryhmaa erikseen valiviivalla erotetusta kaavasta.

Yleisia regex-virheita

Erikoismerkkien karkaamisen unohtaminen on yleisin virhe. Merkit kuten . + * ? ( ) [ ] ^ $ | ja aaltosulut vaativat kenoviivan edelle, jotta ne vastaavat kirjaimellisesti eivitka metamerkkeinaa.

Liian ahnekkaat kaavat ovat toinen yleinen ongelma. .* kvanttori vastaa niin paljon tekstia kuin mahdollista, mika voi sisallyttaa odottamattoman paljon. Kayta .*? laiskaa kvantoria vastaamaan mahdollisimman vahan.

Usein kysytyt kysymykset

Ovatko regex-kaavat samoja kaikissa kielissa?

Perussyntaksi on samankaltainen, mutta eroja on. JavaScript, Python, Java ja .NET kukin tukevat hieman erilaisia ominaisuuksia: lookbehind-tuki, nimetyt ryhmat ja Unicode-ominaisuudet vaihtelevat. Peruskaavat toimivat kaikkialla.

Miten voin oppia saannollisia lausekkeita?

Aloita yksinkertaisista kaavoista ja lisaa monimutkaisuutta asteittain. Opi perusmetamerkit (. * + ? ^ $), merkiluokat ([a-z], \d), toisto-operaattorit ja ryhmat. Harjoittele oikeilla ongelmilla regex-testerilla.