Whiz Tools

Regex-mallin testaaja

Kopioi

Ottelutulokset

Syötä malli ja testiteksti nähdäksesi tulokset

Tallenna malli

Tallennetut mallit

Ei vielä tallennettuja malleja

Regex-symbolit

.Vastaavat mitä tahansa merkkiä lukuun ottamatta rivinvaihtoa
\dVastaavat mitä tahansa numeroa (0-9)
\DVastaavat mitä tahansa ei-numeroa
\wVastaavat mitä tahansa sanamerkkiä (a-z, A-Z, 0-9, _)
\WVastaavat mitä tahansa ei-sana merkkiä
\sVastaavat mitä tahansa välilyöntimerkkiä
\SVastaavat mitä tahansa ei-välilyöntimerkkiä
^Vastaavat rivin alkua
$Vastaavat rivin loppua
*Vastaavat 0 tai enemmän edeltävää merkkiä
+Vastaavat 1 tai enemmän edeltävää merkkiä
?Vastaavat 0 tai 1 edeltävää merkkiä
{n}Vastaavat tarkalleen n edeltävää merkkiä
{n,}Vastaavat vähintään n edeltävää merkkiä
{n,m}Vastaavat n ja m edeltävää merkkiä
[abc]Vastaavat mitä tahansa merkkiä sulkujen sisällä
[^abc]Vastaavat mitä tahansa merkkiä, joka ei ole sulkujen sisällä
(abc)Ryhmää useita tokeneita yhteen ja tallentaa ottelun
a|bVastaavat joko a tai b
\bVastaavat sanarajan sijaintia

Regex-mallin testeri ja validoija

Johdanto

Säännöllinen lauseke (regex) -mallin testeri on olennainen työkalu kehittäjille, data-analyytikoille ja kaikille, jotka työskentelevät tekstinkäsittelyn parissa. Tämä kattava regex-mallin validoija antaa sinun luoda, testata ja hiota säännöllisiä lausekkeita reaaliajassa, tarjoten välitöntä visuaalista palautetta mallin osumista. Olitpa sitten validoimassa sähköpostiosoitteita, jäsentämässä lokitiedostoja tai erottamassa tiettyjä tietoja tekstistä, regex-testerimme tekee kehitys- ja virheenkorjausprosessista nopeampaa ja intuitiivisempaa.

Säännölliset lausekkeet ovat voimakkaita mallintamissekvenssejä, jotka mahdollistavat monimutkaisen tekstin hakemisen, validoinnin ja manipuloinnin. Kuitenkin niiden syntaksi voi olla monimutkainen ja haastava hallita. Tämä regex-mallin testeri yksinkertaistaa prosessia korostamalla osumia kirjoittaessasi, validoimalla mallin syntaksin ja sallimalla sinun tallentaa usein käytettyjä malleja tulevaa käyttöä varten.

Kuinka käyttää regex-mallin testeriä

Regex-mallin validoijan käyttäminen on suoraviivaista ja intuitiivista. Noudata näitä vaiheita aloittaaksesi:

  1. Syötä säännöllinen lauseke: Kirjoita regex-mallisi määrättyyn syöttökenttään. Työkalu validoi mallisi reaaliajassa, varoittaen sinua mahdollisista syntaksivirheistä.

  2. Valitse regex-liput: Valitse sopivat liput mallillesi:

    • g (Globaalinen): Löydä kaikki osumat sen sijaan, että pysähtyisit ensimmäiseen osumaan
    • i (Koko kirjainkoko): Tee mallista kirjainkooltaan riippumaton
    • m (Monirivinen): Tee ^ ja $ vastaamaan jokaisen rivin alkua/loppua
    • Eri yhdistelmiä näistä lipuista on saatavilla pudotusvalikossa
  3. Syötä testiteksti: Kirjoita teksti, jota haluat testata malliasi vastaan, testiteksti-alueelle.

  4. Näe tulokset reaaliajassa: Kun kirjoitat, työkalu automaattisesti:

    • Korostaa kaikki mallin osumat testitekstissä
    • Näyttää löydettyjen osumien kokonaismäärän
    • Ilmoittaa, vastaako malli koko tekstiä
  5. Tallenna hyödylliset mallit: Usein käytettävien mallien osalta:

    • Syötä kuvaileva nimi mallillesi
    • Napsauta "Tallenna" -painiketta
    • Pääset tallennettuihin malleihisi "Tallennetut mallit" -osiossa
  6. Kopioi tulokset: Käytä "Kopioi osumat" -painiketta kopioidaksesi kaikki osumat leikepöydälle käytettäväksi muissa sovelluksissa.

Käyttöliittymä on jaettu kahteen pääpaneeliin: syöttöpaneeliin, johon syötät mallisi ja testitekstin, ja tulospaneeliin, joka näyttää osumat ja mallin tiedot.

Säännöllisten lausekkeiden perusteet

Säännölliset lausekkeet käyttävät erityisiä merkkejä ja sekvenssejä määrittelemään hakumalleja. Tässä on opas tyypillisiin regex-symboleihin, joita työkalumme tukee:

Merkkien vastaavuus

SymboliKuvausEsimerkkiVastaa
.Vastaa mitä tahansa merkkiä, paitsi rivinvaihtoaa.c"abc", "adc", "a1c" jne.
\dVastaa mitä tahansa numeroa (0-9)\d{3}"123", "456", "789" jne.
\DVastaa mitä tahansa ei-numeroa\D+"abc", "xyz" jne.
\wVastaa mitä tahansa sanamerkkiä (a-z, A-Z, 0-9, _)\w+"abc123", "test_123" jne.
\WVastaa mitä tahansa ei-sana merkkiä\W+"!@#", " + " jne.
\sVastaa mitä tahansa valkoista merkkiäa\sb"a b", "a\tb" jne.
\SVastaa mitä tahansa ei-valkoista merkkiä\S+"abc", "123" jne.

Paikkasidonnaiset ankkurit

SymboliKuvausEsimerkkiVastaa
^Vastaa rivin alkua^abc"abc" rivin alussa
$Vastaa rivin loppuaabc$"abc" rivin lopussa
\bVastaa sanarajaa\bword\b"word" kokonaisena sanana

Kvantifioijat

SymboliKuvausEsimerkkiVastaa
*Vastaa 0 tai useampaa edeltävää merkkiäa*b"b", "ab", "aab" jne.
+Vastaa 1 tai useampaa edeltävää merkkiäa+b"ab", "aab", "aaab" jne.
?Vastaa 0 tai 1 edeltävää merkkiäcolou?r"color", "colour"
{n}Vastaa tarkasti n edeltävää merkkiäa{3}"aaa"
{n,}Vastaa vähintään n edeltävää merkkiäa{2,}"aa", "aaa", "aaaa" jne.
{n,m}Vastaa n ja m edeltävää merkkiäa{2,4}"aa", "aaa", "aaaa"

Merkkiluokat

SymboliKuvausEsimerkkiVastaa
[abc]Vastaa mitä tahansa merkkiluokassa olevista merkeistä[aeiou]"a", "e", "i", "o", "u"
[^abc]Vastaa mitä tahansa merkkiä, joka ei ole luokassa[^aeiou]Mikä tahansa merkki, paitsi "a", "e", "i", "o", "u"
[a-z]Vastaa mitä tahansa merkkiluokassa olevista merkeistä[a-z]Mikä tahansa pieni kirjain

Ryhmittely ja vaihtoehtoisuus

SymboliKuvausEsimerkkiVastaa
(abc)Ryhmittää useita tokeneita yhteen ja tallentaa osuman(abc)+"abc", "abcabc" jne.
a|bVastaa joko a tai bcat|dog"cat", "dog"

Kehittyneet regex-mallit

Kun olet hallinnut perusteet, voit luoda monimutkaisempia malleja ratkaistaksesi monimutkaisia tekstinkäsittelyhaasteita:

Sähköpostin validoiminen

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Tämä malli validoi sähköpostiosoitteita varmistaen, että ne noudattavat vakiomuotoa: käyttäjänimi@domain.tld.

URL-osoitteen validoiminen

^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

Tämä malli validoi URL-osoitteita, mukaan lukien ne, joissa on tai ei ole http/https-protokollaa.

Puhelinnumeron validoiminen (Yhdysvaltain muoto)

^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$

Tämä malli vastaa Yhdysvaltain puhelinnumeroita eri muodoissa: (123) 456-7890, 123-456-7890 tai 1234567890.

Päivämäärän validoiminen (VVVV-KK-PV)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$

Tämä malli validoi päivämääriä VVVV-KK-PV-muodossa, perusvalidoinnilla kuukausi- ja päivämäärärajoista.

Katsominen eteen- ja taaksepäin

Eteen- ja taaksepäin katsomisen väitteet mahdollistavat mallin vastaamisen vain, jos se on toisen mallin edellä tai takana:

  • Positiivinen eteenpäin katsominen: a(?=b) vastaa "a":ta vain, jos sen jälkeen tulee "b"
  • Negatiivinen eteenpäin katsominen: a(?!b) vastaa "a":ta vain, jos sen jälkeen ei tule "b"
  • Positiivinen taaksepäin katsominen: (?<=a)b vastaa "b":tä vain, jos sen edellä on "a"
  • Negatiivinen taaksepäin katsominen: (?<!a)b vastaa "b":tä vain, jos sen edellä ei ole "a"

Työskentely regex-lippujen kanssa

Regex-testerimme tukee erilaisia lippuja, jotka muokkaavat, miten malleja vastataan:

  • g (Globaalinen): Löydä kaikki osumat sen sijaan, että pysähtyisit ensimmäiseen osumaan
  • i (Koko kirjainkoko): Tee mallista kirjainkooltaan riippumaton
  • m (Monirivinen): Tee ^ ja $ vastaamaan jokaisen rivin alkua/loppua
  • Yhdistelmät: Voit yhdistää lippuja monimutkaisempia vastausvaatimuksia varten

Käyttötapaukset regex-mallin testaamiselle

Säännöllisillä lausekkeilla on lukuisia käytännön sovelluksia eri aloilla:

Verkkokehitys

  1. Lomakkeiden validointi: Varmista, että käyttäjän syötteet vastaavat vaadittuja muotoja:

    • Sähköpostiosoitteet: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
    • Salasanat (monimutkaisuusvaatimukset): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    • URL-osoitteet: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  2. HTML-jäsentäminen: Erota tietyt elementit tai attribuutit:

    • Löydä kaikki kuvatekit: <img[^>]+src="([^">]+)"
    • Erota linkit: <a[^>]+href="([^">]+)"

Datan käsittely

  1. Lokitiedostojen analysointi: Erota tietoa lokitiedoista:

    • IP-osoitteet: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
    • Aikaleimat: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    • Virheilmoitukset: ERROR: .*
  2. CSV-jäsentäminen: Käsittele pilkulla erotettuja arvoja mahdollisesti lainausmerkillä varustetuilla kentillä:

    • CSV-kenttämatcher: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

Tekstin käsittely

  1. Etsi ja vaihda: Tunnista malleja korvaamista varten:

    • Poista HTML-tunnisteet: <[^>]*>
    • Muotoile puhelinnumerot: (\d{3})(\d{3})(\d{4})($1) $2-$3
  2. Sisällön erottaminen: Vedä erityistä tietoa jäsentämättömästä tekstistä:

    • Erota päivämääriä: \b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
    • Löydä rahamäärät: \$\d+(?:\.\d{2})?

Ohjelmointi ja koodaus

  1. Syntaksin korostaminen: Tunnista kielirakenteet:

    • JavaScript-muuttujat: \b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
    • Funktiomääritelmät: function\s+([a-zA-Z_$][\w$]*)\s*\(
  2. Koodin refaktorointi: Etsi malleja, jotka tarvitsevat päivittämistä:

    • Vanhojen API-kutsujen etsiminen: \.oldMethod\(
    • Turvattomien toimintojen etsiminen: eval\(

Mallien tallentaminen ja hallinta

Regex-mallin testerimme sisältää mallinhallintajärjestelmän, joka sallii sinun tallentaa ja käyttää uudelleen usein käyttämiäsi lausekkeita:

Milloin tallentaa malleja

Harkitse mallien tallentamista, jotka:

  • Käytät usein eri projekteissa
  • Ovat monimutkaisia ja vaikeita muistaa
  • Palvelevat erityisiä validointitarkoituksia työssäsi
  • Olet hiottu useiden iteraatioiden jälkeen

Parhaat käytännöt mallin nimille

Kun tallennat malleja, käytä kuvailevia nimiä, jotka:

  • Ilmoittavat mallin tarkoituksen (esim. "Sähköpostin validoija")
  • Mainitsevat erityiset muodot (esim. "Yhdysvaltain puhelinnumero")
  • Sisältävät versionumerot, jos iteroit malleja (esim. "URL-osoitteen validoija v2")
  • Ovat tiiviitä mutta informatiivisia

Mallien organisointi

Organisoi tallennetut mallit:

  • Toiminnon mukaan (validointi, erottaminen, korvaaminen)
  • Alan mukaan (verkkokehitys, datan käsittely)
  • Monimutkaisuuden mukaan (perus, edistynyt)
  • Käyttötiheyden mukaan

Mallien jakaminen

Vaikka työkalumme ei suoraan tue mallien jakamista käyttäjien välillä, voit:

  • Kopioida malleja jakamista varten kollegoiden kanssa
  • Dokumentoida malleja yhteiseen tietokantaan
  • Sisällyttää mallin kuvaukset projektidokumentaatioon

Yleisimpien regex-ongelmien ratkaiseminen

Jopa kokeneet kehittäjät kohtaavat haasteita säännöllisten lausekkeiden kanssa. Tässä on ratkaisuja yleisiin ongelmiin:

Syntaksivirheet

Jos mallisi näyttää validoimisvirheen:

  • Tarkista, onko sulkuja, neliöitä tai aaltosulkuja, jotka eivät ole paritettu
  • Varmista, että erikoismerkit on oikein paikoillaan takaviivalla
  • Varmista, että kvantifioijilla on edeltävä merkki tai ryhmä
  • Tarkista, onko virheellistä merkkiluokan syntaksia

Suorituskykyongelmat

Jos regexisi on hidas tai aiheuttaa selaimen viivettä:

  • Vältä liiallista sisäkkäisten kvantifioijien käyttöä (esim. (a+)+)
  • Ole varovainen eteen- ja taaksepäin katsomisen kanssa suurissa teksteissä
  • Harkitse tarkempien mallien käyttöä laajojen sijaan
  • Pilko monimutkaiset mallit pienempiin, hallittavampiin osiin

Odottamattomat osumat

Jos mallisi vastaa ei-toivottua tekstiä:

  • Käytä ankkureita (^ ja $) vastataksesi koko merkkijonoa
  • Tee merkkiluokista tarkempia
  • Lisää sanarajoja (\b) tarvittaessa
  • Käytä negatiivisia eteenpäin katsomisia sulkeaksesi tietyt mallit pois

Ei osumia löytynyt

Jos mallisi ei vastaa odotettua tekstiä:

  • Tarkista kirjainkoko-ongelmat (harkitse i-lipun käyttöä)
  • Varmista, että erikoismerkit on oikein paikoillaan
  • Testaa malliasi yksinkertaistetuilla esimerkeillä ensin
  • Varmista, että käytät oikeita merkkiluokkia

Vaihtoehdot säännöllisille lausekkeille

Vaikka regex on voimakas, se ei aina ole paras ratkaisu jokaiselle tekstinkäsittelytehtävälle:

Merkkimenetelmät

Yksinkertaisille tekstitoiminnoille natiivimerkkimenetelmät ovat usein selkeämpiä ja tehokkaampia:

  • String.indexOf() alimerkkijonojen etsimiseen
  • String.startsWith() ja String.endsWith() merkkijonon rajojen tarkistamiseen
  • String.split() perustokenointiin

Erityiset jäsentäjät

Rakenteellisiin tietomuotoihin omistetut jäsentäjät ovat kestävämpiä:

  • JSON-jäsentäjät JSON-datalle
  • XML/HTML-jäsentäjät merkintäkielille
  • CSV-jäsentäjät taulukkomuodoille

Luonnollisen kielen käsittely (NLP)

Ymmärtämään tekstin merkitystä sen sijaan, että vain mallintaisit:

  • Tunne-analyysityökalut
  • Nimetyn entiteetin tunnistaminen
  • Sanaluokan merkintä

Milloin valita vaihtoehtoja

Harkitse vaihtoehtojen käyttöä regexin sijaan, kun:

  • Tekstimuoto on erittäin säännöllinen ja yksinkertainen
  • Muodolla on vakiintunut jäsentäjä saatavilla
  • Sinun on ymmärrettävä semanttinen merkitys
  • Suorituskyky on kriittistä erittäin suurille teksteille

Usein kysytyt kysymykset

Mikä on säännöllinen lauseke?

Säännöllinen lauseke (regex) on merkkijono, joka määrittelee hakumallin. Näitä malleja voidaan käyttää merkkijonojen hakemiseen, vastaamiseen ja tekstin manipulointitoimiin.

Miksi tarvitsen regex-mallin testerin?

Regex-mallin testeri auttaa sinua kehittämään ja virheenkorjaamaan säännöllisiä lausekkeita tarjoamalla välitöntä visuaalista palautetta osumista, validoimalla mallin syntaksin ja sallimalla sinun kokeilla erilaisia malleja ja lippuja ilman, että sinun tarvitsee toteuttaa niitä ensin koodissa.

Kuinka voin vastata kirjaimelliseen erikoismerkkiin, kuten pisteeseen tai tähteen?

Vastataksesi kirjaimellisiin erikoismerkkeihin, joilla on yleensä erityinen merkitys regexissä, sinun on paikoitettava ne takaviivalla. Esimerkiksi, jos haluat vastata kirjaimelliseen pisteeseen, käytä \. sen sijaan, että käyttäisit vain ..

Mikä on ero .* ja .*? välillä regex-mallissa?

.* on ahne kvantifioija, joka vastaa niin monelle merkille kuin mahdollista, kun taas .*? on laiska (ei-ahne) kvantifioija, joka vastaa niin vähälle merkille kuin mahdollista. Tämä ero on tärkeä, kun haluat löytää lyhyimmän osuman eikä pisintä.

Voinko käyttää tätä regex-testeriä malleihin missä tahansa ohjelmointikielessä?

Vaikka ydinregex-syntaksi on samanlainen monilla kielillä, toteutuksessa on hienovaraisia eroja. Testerimme käyttää JavaScriptin regex-moottoria, joka on yhteensopiva monien verkkokielten kanssa, mutta voi poiketa regexistä kielissä kuten Python, Java tai Perl.

Kuinka validoida koko merkkijono regexin avulla?

Validoidaksesi, että koko merkkijono vastaa mallia, käytä ^-ankkuria alussa ja $-ankkuria lopussa regexissäsi. Esimerkiksi ^[0-9]+$ vastaa vain merkkijonoja, jotka koostuvat kokonaan numeroista.

Mitkä ovat tallentavat ryhmät ja kuinka käytän niitä?

Tallentavat ryhmät, jotka on luotu sulkujen () avulla, mahdollistavat tiettyjen osien erottamisen osumasta. Testerissämme voit nähdä kaikki osumat, mukaan lukien tallennetut ryhmät. Ohjelmointikielissä voit yleensä käyttää näitä tallennuksia indeksoimalla osumatuloksen.

Kuinka voin tehdä regex-malleistani tehokkaampia?

Parantaaksesi regexin tehokkuutta: ole tarkka merkkiluokkien kanssa, vältä tarpeettomien tallentavien ryhmien käyttöä (käytä ei-tallentavia ryhmiä (?:...) kun mahdollista), rajoita eteen- ja taaksepäin katsomisen käyttöä, ja vältä katastrofaalista takaisinseurantamallia, kuten sisäkkäisiä kvantifioijia.

Mitkä ovat yleisimmät regex-virheet, joita on vältettävä?

Yleisimmät virheet sisältävät: erikoismerkkien paikoittamisen unohtamisen, liian ahneiden mallien luomisen, ankkureiden (kuten ^ ja $) unohtamisen ja liian monimutkaisten lausekkeiden kirjoittamisen, jotka ovat vaikeita ylläpitää.

Voiko regex käsitellä sisäkkäisiä rakenteita, kuten HTML:ää?

Säännölliset lausekkeet eivät ole hyvin soveltuvia sisäkkäisten rakenteiden, kuten HTML:n tai XML:n, jäsentämiseen. Vaikka voit luoda regex-malleja yksinkertaisten HTML-osumien löytämiseksi, on yleensä parempi käyttää omistettua HTML-jäsentäjää monimutkaisessa HTML-käsittelyssä.

Viitteet

  1. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
  2. Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
  3. "Säännöllinen lauseke." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
  4. MDN Web Docs. "Säännölliset lausekkeet." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. RegExr: Opettele, rakenna ja testaa RegEx. https://regexr.com/

Kokeile regex-mallin testeriämme tänään yksinkertaistaaksesi tekstinkäsittelytehtäviäsi, validoidaksesi syötemuotoja ja erottaaksesi merkityksellistä tietoa jäsentämättömästä tekstistä. Olitpa sitten aloittelija, joka oppii säännöllisten lausekkeiden perusteet, tai kokenut kehittäjä, joka työskentelee monimutkaisessa mallintamisessa, työkalumme tarjoaa tarvitsemasi ominaisuudet regex-malliesi tehokkaaseen luomiseen, testaamiseen ja hiomiseen.

Palaute