Regex-mallin testaaja
Ottelutulokset
Syötä malli ja testiteksti nähdäksesi tulokset
Tallenna malli
Ottelutulokset
Syötä malli ja testiteksti nähdäksesi tulokset
Tallennetut mallit
Ei vielä tallennettuja malleja
Regex-symbolit
.
Vastaavat mitä tahansa merkkiä lukuun ottamatta rivinvaihtoa\d
Vastaavat mitä tahansa numeroa (0-9)\D
Vastaavat mitä tahansa ei-numeroa\w
Vastaavat mitä tahansa sanamerkkiä (a-z, A-Z, 0-9, _)\W
Vastaavat mitä tahansa ei-sana merkkiä\s
Vastaavat mitä tahansa välilyöntimerkkiä\S
Vastaavat 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 otteluna|b
Vastaavat joko a tai b\b
Vastaavat sanarajan sijaintiaRegex-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:
-
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ä.
-
Valitse regex-liput: Valitse sopivat liput mallillesi:
g
(Globaalinen): Löydä kaikki osumat sen sijaan, että pysähtyisit ensimmäiseen osumaani
(Koko kirjainkoko): Tee mallista kirjainkooltaan riippumatonm
(Monirivinen): Tee^
ja$
vastaamaan jokaisen rivin alkua/loppua- Eri yhdistelmiä näistä lipuista on saatavilla pudotusvalikossa
-
Syötä testiteksti: Kirjoita teksti, jota haluat testata malliasi vastaan, testiteksti-alueelle.
-
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ä
-
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
-
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
Symboli | Kuvaus | Esimerkki | Vastaa |
---|---|---|---|
. | Vastaa mitä tahansa merkkiä, paitsi rivinvaihtoa | a.c | "abc", "adc", "a1c" jne. |
\d | Vastaa mitä tahansa numeroa (0-9) | \d{3} | "123", "456", "789" jne. |
\D | Vastaa mitä tahansa ei-numeroa | \D+ | "abc", "xyz" jne. |
\w | Vastaa mitä tahansa sanamerkkiä (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" jne. |
\W | Vastaa mitä tahansa ei-sana merkkiä | \W+ | "!@#", " + " jne. |
\s | Vastaa mitä tahansa valkoista merkkiä | a\sb | "a b", "a\tb" jne. |
\S | Vastaa mitä tahansa ei-valkoista merkkiä | \S+ | "abc", "123" jne. |
Paikkasidonnaiset ankkurit
Symboli | Kuvaus | Esimerkki | Vastaa |
---|---|---|---|
^ | Vastaa rivin alkua | ^abc | "abc" rivin alussa |
$ | Vastaa rivin loppua | abc$ | "abc" rivin lopussa |
\b | Vastaa sanarajaa | \bword\b | "word" kokonaisena sanana |
Kvantifioijat
Symboli | Kuvaus | Esimerkki | Vastaa |
---|---|---|---|
* | 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
Symboli | Kuvaus | Esimerkki | Vastaa |
---|---|---|---|
[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
Symboli | Kuvaus | Esimerkki | Vastaa |
---|---|---|---|
(abc) | Ryhmittää useita tokeneita yhteen ja tallentaa osuman | (abc)+ | "abc", "abcabc" jne. |
a|b | Vastaa joko a tai b | cat|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
-
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 \.-]*)*\/?$
- Sähköpostiosoitteet:
-
HTML-jäsentäminen: Erota tietyt elementit tai attribuutit:
- Löydä kaikki kuvatekit:
<img[^>]+src="([^">]+)"
- Erota linkit:
<a[^>]+href="([^">]+)"
- Löydä kaikki kuvatekit:
Datan käsittely
-
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: .*
- IP-osoitteet:
-
CSV-jäsentäminen: Käsittele pilkulla erotettuja arvoja mahdollisesti lainausmerkillä varustetuilla kentillä:
- CSV-kenttämatcher:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- CSV-kenttämatcher:
Tekstin käsittely
-
Etsi ja vaihda: Tunnista malleja korvaamista varten:
- Poista HTML-tunnisteet:
<[^>]*>
- Muotoile puhelinnumerot:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Poista HTML-tunnisteet:
-
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})?
- Erota päivämääriä:
Ohjelmointi ja koodaus
-
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*\(
- JavaScript-muuttujat:
-
Koodin refaktorointi: Etsi malleja, jotka tarvitsevat päivittämistä:
- Vanhojen API-kutsujen etsiminen:
\.oldMethod\(
- Turvattomien toimintojen etsiminen:
eval\(
- Vanhojen API-kutsujen etsiminen:
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 etsimiseenString.startsWith()
jaString.endsWith()
merkkijonon rajojen tarkistamiseenString.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
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
- "Säännöllinen lauseke." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Säännölliset lausekkeet." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- 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.