Whiz Tools

Tester vzorce Regex

Kopiraj

Rezultati ujemanja

Vnesite vzorec in testno besedilo, da vidite rezultate

Shrani vzorec

Shranjeni vzorci

Še ni shranjenih vzorcev

Vodnik po simbolih Regex

.Ujema se z vsakim znakom razen preloma vrstice
\dUjema se z vsakim digitom (0-9)
\DUjema se z vsakim nedigitom
\wUjema se z vsakim znakom besede (a-z, A-Z, 0-9, _)
\WUjema se z vsakim neznakom besede
\sUjema se z vsakim znakom presledka
\SUjema se z vsakim neznakom presledka
^Ujema se z začetkom vrstice
$Ujema se z koncem vrstice
*Ujema se z 0 ali več predhodnimi znaki
+Ujema se z 1 ali več predhodnimi znaki
?Ujema se z 0 ali 1 predhodnim znakom
{n}Ujema se z n predhodnimi znaki
{n,}Ujema se z vsaj n predhodnimi znaki
{n,m}Ujema se z med n in m predhodnimi znaki
[abc]Ujema se z enim od znakov v oklepajih
[^abc]Ujema se z vsakim znakom, ki ni v oklepajih
(abc)Skupina več tokenov in zajame ujemanje
a|bUjema se bodisi z a bodisi z b
\bUjema se z mejo besede

Tester in vzorih Regex in Validator

Uvod

Tester vzorcev Regular Expression (regex) je bistveno orodje za razvijalce, analitike podatkov in vsakogar, ki dela z obdelavo besedila. Ta celovit validator vzorcev regex vam omogoča, da ustvarite, preizkusite in izpopolnite redne izraze v realnem času, kar zagotavlja takojšnje vizualne povratne informacije o ujemanju vzorcev. Ne glede na to, ali validirate e-poštne naslove, analizirate dnevniške datoteke ali izvlečete specifične podatke iz besedila, naš tester regex olajša postopek razvoja in odpravljanja napak.

Redni izrazi so močne zaporedne strukture za iskanje vzorcev, ki omogočajo sofisticirano iskanje besedila, validacijo in manipulacijo. Vendar je njihova sintaksa lahko zapletena in težko obvladljiva. Ta tester vzorcev regex poenostavi postopek z označevanjem ujemanj, ko tipkate, validacijo sintakse vzorca in omogoča shranjevanje pogosto uporabljenih vzorcev za prihodnjo referenco.

Kako uporabljati tester vzorcev Regex

Uporaba našega validatorja vzorcev regex je preprosta in intuitivna. Sledite tem korakom, da začnete:

  1. Vnesite vzorec rednega izraza: Vnesite svoj vzorec regex v predvideno vhodno polje. Orodje validira vaš vzorec v realnem času in vas opozori na morebitne sintaktične napake.

  2. Izberite zastavice regex: Izberite ustrezne zastavice za vaš vzorec:

    • g (Global): Najdite vsa ujemanja namesto da se ustavite po prvem ujemanju
    • i (Brez razlikovanja med velikimi in malimi črkami): Ustvarite vzorec brez razlikovanja med velikimi in malimi črkami
    • m (Večvrstično): Ustvarite, da ^ in $ ujemata začetek/konec vsake vrstice
    • Različne kombinacije teh zastavic so na voljo v spustnem meniju
  3. Vnesite testno besedilo: Vnesite besedilo, ki ga želite preizkusiti proti vašemu vzorcu, v območje za testno besedilo.

  4. Ogled rezultatov v realnem času: Medtem ko tipkate, orodje samodejno:

    • Označuje vsa ujemanja vzorca v testnem besedilu
    • Prikazuje skupno število najdenih ujemanj
    • Pokaže, ali vzorec ustreza celotnemu besedilu
  5. Shranjevanje uporabnih vzorcev: Za vzorce, ki jih pogosto uporabljate:

    • Vnesite opisno oznako za vaš vzorec
    • Kliknite gumb "Shrani"
    • Dostopite do shranjenih vzorcev v razdelku "Shranjeni vzorci"
  6. Kopirajte rezultate: Uporabite gumb "Kopiraj ujemanja", da kopirate vse ujemajoče se besedilo v odložišče za uporabo v drugih aplikacijah.

Vmesnik je razdeljen na dva glavna panela: vhodni panel, kjer vnesete svoj vzorec in testno besedilo, ter rezultatski panel, ki prikazuje ujemanja in informacije o vzorcu.

Osnove rednih izrazov

Redni izrazi uporabljajo posebne znake in zaporedja za definiranje iskalnih vzorcev. Tukaj je vodnik po temeljnih simbolih regex, ki jih podpira naše orodje:

Ujemanje znakov

SimbolOpisPrimerUjemanja
.Ujema kateri koli znak razen nove vrsticea.c"abc", "adc", "a1c", itd.
\dUjema katero koli števko (0-9)\d{3}"123", "456", "789", itd.
\DUjema katero koli ne-številko\D+"abc", "xyz", itd.
\wUjema kateri koli znak besede (a-z, A-Z, 0-9, _)\w+"abc123", "test_123", itd.
\WUjema kateri koli ne-besedni znak\W+"!@#", " + ", itd.
\sUjema kateri koli znak presledkaa\sb"a b", "a\tb", itd.
\SUjema kateri koli ne-presledni znak\S+"abc", "123", itd.

Pozicijski sidri

SimbolOpisPrimerUjemanja
^Ujema začetek vrstice^abc"abc" na začetku vrstice
$Ujema konec vrsticeabc$"abc" na koncu vrstice
\bUjema mejo besede\bword\b"word" kot celotna beseda

Kvantifikatorji

SimbolOpisPrimerUjemanja
*Ujema 0 ali več predhodnega znakaa*b"b", "ab", "aab", itd.
+Ujema 1 ali več predhodnega znakaa+b"ab", "aab", "aaab", itd.
?Ujema 0 ali 1 predhodnega znakacolou?r"color", "colour"
{n}Ujema n predhodnih znakova{3}"aaa"
{n,}Ujema vsaj n predhodnih znakova{2,}"aa", "aaa", "aaaa", itd.
{n,m}Ujema med n in m predhodnimi znakia{2,4}"aa", "aaa", "aaaa"

Znakovne klase

SimbolOpisPrimerUjemanja
[abc]Ujema kateri koli znak iz okvirov[aeiou]"a", "e", "i", "o", "u"
[^abc]Ujema kateri koli znak, ki ni v okvirov[^aeiou]Kateri koli znak razen "a", "e", "i", "o", "u"
[a-z]Ujema kateri koli znak v razponu[a-z]Kateri koli mala črka

Grupiranje in alternacija

SimbolOpisPrimerUjemanja
(abc)Grupira več tokenov skupaj in zajame ujemanje(abc)+"abc", "abcabc", itd.
a|bUjema bodisi a bodisi bcat|dog"cat", "dog"

Napredni vzorci regex

Ko obvladate osnove, lahko ustvarite bolj sofisticirane vzorce za reševanje kompleksnih izzivov obdelave besedila:

Validacija e-pošte

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

Ta vzorec validira e-poštne naslove tako, da zagotavlja, da sledijo standardnemu formatu: uporabniško ime@domena.tld.

Validacija URL

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

Ta vzorec validira URL-je, vključno tiste brez ali z http/https protokolom.

Validacija telefonskih številk (US format)

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

Ta vzorec ujema ameriške telefonske številke v različnih formatih: (123) 456-7890, 123-456-7890 ali 1234567890.

Validacija datumov (YYYY-MM-DD)

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

Ta vzorec validira datume v formatu YYYY-MM-DD, z osnovno validacijo za razpone mesecev in dni.

Lookahead in Lookbehind

Lookahead in lookbehind trditve vam omogočajo, da ujamete vzorce le, če jih sledi ali jih predhaja drug vzorec:

  • Pozitiven lookahead: a(?=b) ujema "a" le, če ga sledi "b"
  • Negativen lookahead: a(?!b) ujema "a" le, če ga ne sledi "b"
  • Pozitiven lookbehind: (?<=a)b ujema "b" le, če ga predhaja "a"
  • Negativen lookbehind: (?<!a)b ujema "b" le, če ga ne predhaja "a"

Delo z zastavicami regex

Naš tester regex podpira različne zastavice, ki spreminjajo način ujemanja vzorcev:

  • g (Global): Najdite vsa ujemanja namesto da se ustavite po prvem ujemanju
  • i (Brez razlikovanja med velikimi in malimi črkami): Ustvarite vzorec brez razlikovanja med velikimi in malimi črkami
  • m (Večvrstično): Ustvarite, da ^ in $ ujemata začetek/konec vsake vrstice
  • Kombinacije: Lahko kombinirate zastavice za bolj kompleksne zahteve ujemanja

Uporabe za testiranje vzorcev regex

Redni izrazi imajo številne praktične aplikacije v različnih področjih:

Razvoj spletnih strani

  1. Validacija obrazcev: Zagotovite, da vnosi uporabnikov ustrezajo zahtevanim formatom:

    • E-poštni naslovi: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
    • Gesla (s zahtevami glede kompleksnosti): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    • URL-ji: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  2. Analiza HTML: Izvlecite specifične elemente ali atribute:

    • Najdite vse slikovne oznake: <img[^>]+src="([^">]+)"
    • Izvlecite povezave: <a[^>]+href="([^">]+)"

Obdelava podatkov

  1. Analiza dnevniških datotek: Izvlecite informacije iz dnevniških zapisov:

    • IP naslovi: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
    • Časovni žigi: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    • Sporočila o napakah: ERROR: .*
  2. Obdelava CSV: Obdelajte vrednosti, ločene s vejicami, z morebitnimi citiranimi polji:

    • Matcher za CSV polja: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

Obdelava besedila

  1. Iskanje in zamenjava: Identificirajte vzorce za zamenjavo:

    • Odstranite HTML oznake: <[^>]*>
    • Oblikujte telefonske številke: (\d{3})(\d{3})(\d{4})($1) $2-$3
  2. Izvlečenje vsebine: Izvlecite specifične informacije iz neurejenega besedila:

    • Izvlecite datume: \b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
    • Najdite denarne vrednosti: \$\d+(?:\.\d{2})?

Programiranje in kodiranje

  1. Sintaktično označevanje: Identificirajte jezikovne konstrukte:

    • Spremenljivke JavaScript: \b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
    • Definicije funkcij: function\s+([a-zA-Z_$][\w$]*)\s*\(
  2. Refaktorizacija kode: Najdite vzorce, ki jih je treba posodobiti:

    • Zastarele API klice: \.oldMethod\(
    • Nevarne funkcije: eval\(

Shranjevanje in upravljanje vzorcev

Naš tester vzorcev regex vključuje sistem za upravljanje vzorcev, ki vam omogoča, da shranite in ponovno uporabite svoje pogosto uporabljene izraze:

Kdaj shraniti vzorce

Razmislite o shranjevanju vzorcev, ki:

  • jih pogosto uporabljate v različnih projektih
  • so kompleksni in jih je težko zapomniti
  • služijo specifičnim namenom validacije v vašem delu
  • ste jih izpopolnili po več iteracijah

Najboljše prakse za oznake vzorcev

Pri shranjevanju vzorcev uporabite opisne oznake, ki:

  • nakazujejo namen vzorca (npr. "Validator e-pošte")
  • omenjajo specifične formate (npr. "Telefonska številka v ZDA")
  • vključujejo informacije o različici, če iterirate po vzorcih (npr. "Validator URL v2")
  • so jedrnate, a informativne

Organizacija vzorcev

Organizirajte svoje shranjene vzorce po:

  • Funkciji (validacija, izvlečenje, zamenjava)
  • Področju (razvoj spletnih strani, obdelava podatkov)
  • Kompleksnosti (osnovni, napredni)
  • Pogostosti uporabe

Deljenje vzorcev

Medtem ko naše orodje neposredno ne podpira deljenja vzorcev med uporabniki, lahko:

  • Kopirate vzorce za deljenje s sodelavci
  • Dokumentirate svoje vzorce v skupni zbirki
  • Vključite opise vzorcev v dokumentacijo projekta

Odpravljanje pogostih težav z regex

Tudi izkušeni razvijalci se srečujejo z izzivi pri rednih izrazih. Tukaj so rešitve za pogoste težave:

Sintaktične napake

Če vaš vzorec prikazuje napako validacije:

  • Preverite, ali so okrogle, oglate ali zavite okvire neujemajoče
  • Prepričajte se, da so posebni znaki pravilno pobegnjeni z obratno poševnico
  • Potrdite, da imajo kvantifikatorji predhodni znak ali skupino
  • Poglejte za neveljavnim znakom razreda

Težave z zmogljivostjo

Če je vaš regex počasen ali povzroča zagozdenje brskalnika:

  • Izogibajte se pretirani uporabi gnezdenih kvantifikatorjev (npr. (a+)+)
  • Bodite previdni z lookaheads in lookbehinds v velikih besedilih
  • Razmislite o uporabi bolj specifičnih vzorcev namesto širokih
  • Razdelite kompleksne vzorce na manjše, bolj obvladljive dele

Nepričakovana ujemanja

Če vaš vzorec ujema nezaželeno besedilo:

  • Uporabite sidra (^ in $), da ujamete celotne nize
  • Naredite razrede znakov bolj specifične
  • Dodajte meje besed (\b) kjer je to primerno
  • Uporabite negativne lookaheads, da izključite določene vzorce

Ni najdenih ujemanj

Če vaš vzorec ne ujema pričakovanega besedila:

  • Preverite težave z razlikovanjem med velikimi in malimi črkami (razmislite o uporabi zastavice i)
  • Preverite, ali so posebni znaki pravilno pobegnjeni
  • Preizkusite svoj vzorec na poenostavljenih primerih najprej
  • Prepričajte se, da uporabljate pravilne razrede znakov

Alternativi rednim izrazom

Čeprav je regex močan, ni vedno najboljša rešitev za vsak tekstovni postopek:

Metode nizov

Za preproste tekstovne operacije so domače metode nizov pogosto bolj jasne in učinkovite:

  • String.indexOf() za iskanje podnizov
  • String.startsWith() in String.endsWith() za preverjanje meja nizov
  • String.split() za osnovno tokenizacijo

Specializirani parserji

Za strukturirane podatkovne formate so namenska orodja bolj robustna:

  • Parserji JSON za podatke JSON
  • Parserji XML/HTML za označevalne jezike
  • Parserji CSV za tabelarne podatke

Obdelava naravnega jezika (NLP)

Za razumevanje pomena besedila namesto le vzorcev:

  • Orodja za analizo sentimenta
  • Prepoznavanje poimenovanih entitet
  • Oznaka delov govora

Kdaj izbrati alternative

Razmislite o alternativah za regex, ko:

  • Je struktura besedila zelo redna in preprosta
  • Ima format standardiziran parser
  • Potrebujete razumevanje semantičnega pomena
  • Je zmogljivost ključnega pomena za zelo velika besedila

Pogosto zastavljena vprašanja

Kaj je redni izraz?

Redni izraz (regex) je zaporedje znakov, ki definira iskalni vzorec. Ti vzorci se lahko uporabljajo za iskanje nizov, ujemanje in operacije obdelave besedila.

Zakaj potrebujem tester vzorcev regex?

Tester vzorcev regex vam pomaga razvijati in odpravljati napake v rednih izrazih, saj zagotavlja takojšnje vizualne povratne informacije o ujemanjih, validira sintakso vzorca in vam omogoča eksperimentiranje z različnimi vzorci in zastavicami, ne da bi jih morali najprej implementirati v kodi.

Kako ujamem dobesedni poseben znak, kot je pika ali zvezdica?

Da bi ujeli dobesedne posebne znake, ki običajno imajo poseben pomen v regexu, jih morate pobegniti z obratno poševnico. Na primer, da bi ujeli dobesedno piko, uporabite \. namesto samo ..

Kakšna je razlika med .* in .*? v vzorcu regex?

.* je požrešen kvantifikator, ki ujame čim več znakov, medtem ko .*? je len (ne-požrešen) kvantifikator, ki ujame čim manj znakov. Ta razlika je pomembna, ko želite najti najkrajše ujemanje namesto najdaljšega.

Ali lahko uporabim ta tester regex za vzorce v katerem koli programskem jeziku?

Čeprav je osnovna sintaksa regex podobna v mnogih jezikih, obstajajo subtilne razlike v implementaciji. Naš tester uporablja regex motor JavaScript, ki je združljiv z mnogimi spletnimi jeziki, vendar se lahko razlikuje od regexa v jezikih, kot so Python, Java ali Perl.

Kako validiram celoten niz z regex?

Da bi validirali, da celoten niz ustreza vzorcu, uporabite sidro ^ na začetku in sidro $ na koncu vašega regexa. Na primer, ^[0-9]+$ bo ustrezal le nizom, ki so sestavljeni izključno iz številk.

Kaj so zajemalne skupine in kako jih uporabim?

Zajemalne skupine, ustvarjene z okroglimi okviri (), vam omogočajo, da izvlečete specifične dele ujemajočega se besedila. V našem testerju lahko vidite vsa ujemanja, vključno z zajetimi skupinami. V programskih jezikih lahko običajno dostopate do teh zajemov preko indeksiranja rezultata ujemanja.

Kako lahko izboljšam učinkovitost svojih vzorcev regex?

Za izboljšanje učinkovitosti regexa: bodite specifični z razredi znakov, izogibajte se nepotrebnim zajemalnim skupinam (uporabite ne-zajemalne skupine (?:...), kadar je to mogoče), omejite uporabo lookaheads/lookbehinds, in se izogibajte katastrofalnim nazajvanjem vzorcev, kot so gnezdeni kvantifikatorji.

Kateri so najpogostejši napaki regex, ki se jim je treba izogniti?

Pogoste napake vključujejo: ne pobegniti posebnih znakov, ustvarjanje vzorcev, ki so preveč požrešni, pozabiti na sidranje vzorcev (z ^ in $), in pisanje prekompleksnih izrazov, ki jih je težko vzdrževati.

Ali regex lahko obravnava gnezdene strukture, kot je HTML?

Redni izrazi niso dobro primerni za obdelavo gnezdenih struktur, kot so HTML ali XML. Čeprav lahko ustvarite regex vzorce za preprosto ujemanje HTML, je na splošno bolje uporabiti namenski parser HTML za kompleksno obdelavo HTML.

Viri

  1. Friedl, J. E. F. (2006). Obvladovanje rednih izrazov. O'Reilly Media.
  2. Goyvaerts, J., & Levithan, S. (2012). Knjiga receptov za redne izraze. O'Reilly Media.
  3. "Redni izraz." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
  4. MDN Web Docs. "Redni izrazi." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. RegExr: Učite se, ustvarite in preizkusite RegEx. https://regexr.com/

Preizkusite naš tester vzorcev regex danes, da poenostavite svoje naloge obdelave besedila, validirate formate vhodov in izvlečete smiselne podatke iz neurejenega besedila. Ne glede na to, ali ste začetnik, ki se uči osnov rednih izrazov, ali izkušen razvijalec, ki dela na kompleksnem ujemanju vzorcev, naše orodje nudi funkcije, ki jih potrebujete za učinkovito ustvarjanje, testiranje in izpopolnjevanje vaših regex vzorcev.

Povratne informacije