Išsamus reguliariosios išraiškos taisyklių vadovas: kas jos yra, kaip jos veikia, ir praktiniai pavyzdžiai

  • Reguliariosios išraiškos taisyklės leidžia efektyviai ieškoti, tikrinti ir transformuoti tekstą.
  • Jo sintaksėje naudojami pažodiniai simboliai, metasimboliai ir kiekybiniai rodikliai, siekiant apibrėžti tikslius modelius.
  • Regex yra būtinas programavime, sistemų administravime, SEO ir pažangiame duomenų redagavime.

Reguliariosios išraiškos taisyklių pavyzdys

Reguliariosios išraiškos, paprastai žinomos kaip Regex, yra vienas galingiausių ir universaliausių išteklių kūrimo, sistemų administravimo ir didelių teksto kiekių apdorojimo pasaulyje. Tačiau daugeliui vartotojų ir programuotojų, kurie su tuo susiduria pirmą kartą, sintaksė gali būti mįslinga ar net paini. Įvaldę reguliariosios išraiškos taisykles ir šablonus, galite ieškoti, filtruoti, tikrinti ir transformuoti tekstą neprilygstamu efektyvumu ir lankstumu.

Ar kada susimąstėte, kaip galite rasti sudėtingus šablonus dokumentuose, patvirtinti formas, transformuoti duomenis ar automatizuoti paieškos procesus savo IT projektuose? Nesvarbu, ar esate kūrėjas, sistemos administratorius, ar tiesiog smalsus vartotojas, šis straipsnis skirtas jums. Pasiruoškite išsamiam, praktiškam ir, svarbiausia, aiškiam reguliariųjų išraiškų taisyklių ir jų taikymo įvairiuose kontekstuose vadovui.

Kas yra reguliariosios išraiškos taisyklės arba reguliariosios išraiškos?

Reguliariosios išraiškos (angl. Regex, santrumpa anglų kalboje Reguliari išraiška) yra simbolių sekos arba modeliai, galintys apibrėžti taisykles tekstų paieškai, patvirtinimui arba manipuliavimui kituose tekstuose. Įsivaizduokite, kad ieškote konkrečių frazių, konkrečių formatų (pvz., el. pašto adresų, datų, telefono numerių), vardų, atitinkančių tam tikrus kriterijus, arba norite masiškai pakeisti teksto dalis: visais šiais atvejais, Regex yra idealus įrankis.

Pagrindinė idėja yra Simbolių, raidžių ir specialiųjų operatorių seka aprašykite šabloną, kurį turi atitikti tekstas, kurį norime rasti, patvirtinti arba modifikuoti.Pavyzdžiui, jei norite rasti visus skaičius frazėje, galite apibrėžti paprastą šabloną, kuris sako „bet koks skaitinis simbolis“ (pvz., \d). Jei norite kažko sudėtingesnio, galite kurti tokias sudėtingas taisykles kaip: „visos eilutės, kurios prasideda „Kopija“ ir baigiasi skaičiumi“.

Reguliariosios išraiškos sintaksė

Regex istorija ir evoliucija

Reguliarūs reiškiniai atsirado XX amžiaus viduryje formaliosios logikos ir automatų teorijos srityje. Pirmasis praktinis jo panaudojimas buvo UNIX pagrindu sukurtose sistemose, naudojant tokias programas kaip ed, grep, troškulys y OhoVėliau standartas POSIX išplėtė savo sintaksę ir įtraukė ją į daugybę aplinkų. Vėliau kalba Perlas „Regex“ pakėlė į naują lygį, pridėdama naujų funkcijų ir išpopuliarindama jas kūrėjų bendruomenėje.

Dabartyje, Regex yra integruotas į daugumą programavimo kalbų („JavaScript“, „Python“, „Java“, C#, PHP, „Ruby“ ir kt.), taip pat pažangius teksto redaktorius, operacines sistemas, žiniatinklio sistemas ir daugybę komandinės eilutės įrankių. Tai daro reguliariosios išraiškos taisykles tikrai universalia kalba tekstui apdoroti bet kuriame skaičiavimo kontekste.

Kam skirtos reguliariosios išraiškos taisyklės?

Reguliariosios išraiškos taisyklės skirtos ne tik paieškai; jos taip pat per kelias sekundes patikrina, išgauna, transformuoja, filtruoja arba modifikuoja didelius duomenų kiekius.

  • Didelių tekstų šablonų paieška: Raskite el. laiškus, URL adresus, vardus, numerius, datas ir dar daugiau – net dideliuose failuose ar duomenų bazėse – be rankinių pastangų.
  • Patvirtinkite vartotojo įvestį: Prieš išsaugodamas slaptažodį, patikrina, ar jis atitinka reikalavimus, ar telefono numeris arba el. pašto adresas yra teisingas.
  • Redaguoti ir pakeisti tekstą: Pakeiskite konkrečias teksto dalis – nuo ​​HTML žymų pašalinimo iki duomenų formatų normalizavimo.
  • Automatizuoti procesus: Filtruokite žurnalus, transformuokite sąrašus, analizuokite žurnalų failus arba pervadinkite failus masiškai pagal labai tikslias taisykles.

Reguliariųjų išraiškų pagrindai: pagrindinės sąvokos

Reguliariosios išraiškos taisyklės sudarytos iš literalinių simbolių ir metasimbolių derinio. Šių elementų supratimas yra naudingų šablonų kūrimo pagrindas.

1. Pažodiniai simboliai

Literinis simbolis tiksliai atitinka simbolį, kurio norite ieškoti. Pavyzdžiui, išraiška namas suras tiksliai tą seką, tokia tvarka, tiksliniame tekste.

2. Metasimboliai: reguliariųjų išraiškų galia

Metacharakteriai yra specialūs simboliai, kurie praplečia reguliariųjų išraiškų reikšmę, suteikdami joms universalumo ir galios. Dažniausiai pasitaikantys yra šie:

  • . Taškas žymi bet kokį simbolį, išskyrus eilutės skirtuką.
  • [] Skliaustai apibrėžia leidžiamų simbolių klases arba rinkinius.
  • ^ Circumfix gali žymėti eilutės / žodžio pradžią arba, jei jis yra skliausteliuose, aibės neigimą.
  • $ Dolerio simbolis žymi eilutės arba teksto pabaigą.
  • * Žvaigždutė leidžia ieškoti ankstesnio elemento „nulio ar daugiau pasikartojimų“.
  • + Pliuso ženklas ieško „vieno ar daugiau pakartojimų“.
  • ? Nurodo, kad ankstesnis elementas yra neprivalomas (nulis arba vienas kartas).
  • () Skliausteliuose grupuojamos išraiškos dalys, kad būtų galima taikyti kiekybinius rodiklius, išskirti pogrupius arba apibrėžti alternatyvas.
  • | Vertikalus brūkšnys žymi loginę alternatyvą „arba“.
  • \ Atbulinis brūkšnys pašalina specialiąją sekančio simbolio reikšmę arba įveda sutrumpintas sekas (pvz., \d, \w, \s).

3. Kiekybiniai rodikliai: pasikartojimo valdymas

Kiekybiniai rodikliai leidžia apibrėžti, kiek kartų turėtų būti kartojamas simbolis, klasė ar grupė:

  • *Nulis ar daugiau pakartojimų.
  • +: Vieną ar daugiau kartų.
  • ?: Vieną kartą arba visai ne (nebūtina).
  • {ne}Tiksliai n pakartojimų.
  • {ne}: Bent jau n kartų (neribojamas).
  • {n,m}: Tarp n y m pakartojimų.

4. Simbolių klasės ir santrumpos

Simbolių klasės leidžia mums dar labiau susiaurinti tai, ko norime ieškoti:

  • [az]: bet kokia mažoji raidė.
  • [AZ]: didžioji raidė.
  • [0-9]: bet koks skaitmuo.
  • [abc]raidė a, b arba c.
  • [^xyz]: bet koks simbolis išskyrus x, i z.
  • \d: dešimtainis skaitmuo (atitinka [0–9]).
  • \D: bet koks simbolis, kuris ne būti skaitmuo.
  • \w: žodžio simbolis (raidė, skaičius arba pabraukimas; atitinka [a-zA-Z0-9_]).
  • \W: bet koks nežodinis simbolis.
  • \s: baltas tarpas (tarpas, tabuliacijos simbolis, eilutės lūžis).
  • \S: bet koks simbolis, išskyrus tarpą.

5. Inkarai: rašto įdėjimas į tekstą

Inkarai leidžia įdėti raštus eilutės pradžioje arba pabaigoje arba žodžių pradžioje / pabaigoje.

  • ^: eilutės arba teksto pradžia.
  • $: eilutės arba teksto pabaiga.
  • \b: žodžio riba (pradžia arba pabaiga).
  • \B: nežodinis ribos taškas (vidus).

Praktiniai reguliariosios išraiškos taisyklių pavyzdžiai

Dabar pažiūrėkime, kaip šios taisyklės taikomos realaus gyvenimo situacijose, tiek paprastose, tiek sudėtingose, kad galėtumėte greitai pritaikyti tai, ko išmokote, praktikoje.

  • Patvirtinkite el. pašto adresus: ^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$
  • Raskite DNI numerius: \b\d{8}[- ]?[trwagmyfpdxbnjzsqvhlcke]?\b
  • Aptikti IP v4 adresus: ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)(?:\.(?!$)|$)){4}$
  • Iš HTML žymų išgauti URL:
  • Aptikti komentuotas eilutes „Java“ kalboje: //[^\r\n]*[\r\n]

Išplėstinė logika ir šablonų pritaikymas

Reguliariosios išraiškos leidžia kurti sudėtingus modelius derinant grupes, kaitaliojimus, nuorodas ir išplėstinius kiekybinius rodiklius, taip filtruojant, tikrinant arba randant labai konkrečią informaciją.

Grupės ir asociacijos

Įtraukdami dalį šablono į skliaustus, sukuriame grupę. Tai leidžia mums taikyti kiekybinius rodiklius ištisoms grupėms, išgauti informaciją arba nurodyti subšablonus.

Pavyzdžiui, išraiška ((ma)+b) atitiks „mab“ arba „mamab“, bet ne „maab“. Grupes galima nurodyti vėliau naudojant \1, \2ir kt., idealiai tinka ieškant panašių pasikartojančių modelių.

Alternatyvos (|): loginis „arba“ reguliariojoje išraiškoje

Vertikali juosta | leidžia apibrėžti alternatyvas: bet kuris iš šiuo simboliu atskirtų šablonų bus galiojantis. Pavyzdžiui, (berniukas|mergaitė) atitiks abu žodžius.

Escape metasimboliai su \

Atbulinis brūkšnys \ Labai svarbu neutralizuoti ypatingą metacharakterio reikšmę arba įvesti sutrumpintas sekas. Pavyzdžiui, „\.“ ieško taško, „\?“ – klaustuko, „\\“ – paties atgalinio brūkšnio ir t. t.

Godūs ir tingūs kiekybiniai rodikliai

Pagal numatytuosius nustatymus reguliariosios išraiškos kiekybiniai išraiškos yra godūs: jie paima kuo daugiau teksto. ? Jis pakeičiamas į „tinginį“, kuris fiksuoja būtiniausią minimumą.

Pavyzdžiui: šuo ras ilgiausią eilutę tarp „perr“ ir „o“, o šuo užfiksuos minimumą.

Teiginiai ir apžvalgos

Išankstinės ir užpatentinės patikros teiginiai leidžia patvirtinti sąlygas „prieš“ arba „po“ atitikmens, nenaudojant simbolių iš teksto.

  • Teigiamas žvilgsnis į ateitį: (?=modelis) Patikrinkite, ar po dabartinės pozicijos randamas „raštas“.
  • Neigiamas išankstinis vertinimas: (?! raštas) Patikrinkite, ar žemiau NĖRA „modelio“.
  • Teigiamas/neigiamas žvilgsnis į praeitį: (?<=šablonas) y (? Jie daro tą patį „atvirkštine tvarka“.

Praktinis Regex pritaikymas realiame pasaulyje

Regex naudojama įvairiose srityse ir kasdienėse užduotyse:

  • Formos patvirtinimasel. pašto adresai, telefono numeriai, vardai, stiprūs slaptažodžiai.
  • Žurnalų apdorojimas ir sistemos auditasŠablonų paieška žurnalų failuose, klaidų ir įspėjimų išskyrimas.
  • SEO ir URL valdymasURL perrašymas .htaccess faile, parametrų filtrai, paieškos segmentavimas.
  • Masinis teksto redagavimas: Išvalykite HTML žymas, pašalinkite nereikalingus tarpus, normalizuokite duomenis skaičiuoklėse, pritaikykite senąjį kodą.
  • Žiniatinklio kūrimas ir automatizavimas: automatinis testavimas, serverio taisyklių konfigūravimas, grandiklio kūrimas.

Skirtingi reguliariųjų išraiškų skoniai ir varikliai

Ne visi reguliariųjų išraiškų (Regex) įgyvendinimai palaiko tas pačias galimybes; yra skirtingų „skonių“, priklausomai nuo naudojamos kalbos, įrankio ar variklio.

  • POSIX: Pirmykštė sintaksė, paremta UNIX. Mažiau išsami nei Perl ar PCRE.
  • Perl/PCRE: Labai išsamūs, jie palaiko peržiūras, išplėstines nuorodas, modifikatorius ir subrutines.
  • „JavaScript“: Plačiai naudojamas internete, suderinamas su dauguma operatorių, tačiau yra apribojimų dėl peržiūros (išskyrus šiuolaikines versijas).
  • .NET ir kitos kalbos: Paprastai jie suderinami su PCRE, tačiau visada patartina susipažinti su kalbos dokumentacija.

Todėl, kai tik dirbsite konkrečiame kontekste, patikrinkite, kokią palaikymą ir sintaksę Regex priima tame įrankyje ar kalboje.

Kaip išbandyti ir kurti savo reguliariosios išraiškos šablonus

Geriausias būdas išmokti reguliariųjų išraiškų yra praktikuotis su pavyzdžiais ir naudoti internete prieinamus tiesioginio testavimo įrankius.

  • regex101.com: leidžia rašyti šablonus, tikrinti rezultatus, peržiūrėti paaiškinimus ir našumo statistiką.
  • regexr.com: : puikios nuoseklios pagalbos parinktys, vaizdinė grafika ir interaktyvūs pavyzdžiai.
  • Vizualiniai paaiškinimai ir kodo generatoriai: idealiai tinka sudėtingiems modeliams suprasti ir išraiškoms generuoti nuo nulio.
  • Internetiniai žaidimai ir pratimaiMokykitės žaisdami ir spręskite tikrus iššūkius, kad įsisavintumėte, kaip veikia reguliariosios išraiškos.

Dažniausios klaidos ir praktiniai patarimai, kaip įvaldyti reguliariąją išraišką

Reguliariosios išraiškos yra galingos, bet taip pat gali būti painios. Šie patarimai padės išvengti dažniausiai pasitaikančių klaidų:

  • Escape metacharakterių sąrašas kai ieškote jo pažodinės reikšmės. Pavyzdžiui, naudokite \. dėl esmės, \* už žvaigždutę \? apklausai.
  • Nepersistenkite vartodami tašką (.) ir pakaitos simbolį .*. Jie yra labai naudingi, tačiau gali duoti nepageidaujamų rezultatų, jei netinkamai apibrėžiate savo modelį.
  • Pridėkite inkarus (^, $), jei norite apriboti raštą eilutės pradžioje arba pabaigoje. ir venkite dalinių atitikmenų.
  • Naudokite konkrečius kiekybinius rodiklius ieškant tikslių pasikartojimų, užuot pasikliaujant vien * arba +.
  • Visada stenkitės pateikti teigiamų ir neigiamų pavyzdžių. Tokiu būdu galite nustatyti, ar modelis apima visus būtinus atvejus, nesukeldami klaidingų teigiamų rezultatų.
  • Skaldyk ir valdyk: Jei turite labai sudėtingą modelį, sudėkite jį dalimis ir sujunkite fragmentus pabaigoje.
  • Nedvejodami peržiūrėkite atmintines, dokumentaciją ir forumus. pamatyti pavyzdžių ir kasdienių gudrybių.

Regex integravimas į programavimo kalbas ir įrankius

Reguliariosios išraiškos yra integruotos į dažniausiai naudojamas visų pagrindinių kalbų funkcijas. Keletas pavyzdžių:

  • „JavaScript“: Metodai testas (), vykdyti () RegExp objekto ir metodų atitikimas (), Paieška(), pakeisti (), padalyti () stygų.
  • „Python“: Modulis re teikia tokias funkcijas kaip Paieška(), atitikimas (), rasti viską (), sub()Ir tt
  • PHP: Funciones preg_match(), preg_replace(), preg_split() ir kiti
  • .NET: Clase Reguliariai su pažangiais metodais ir PCRE palaikymu.

Redaktoriuose, tokiuose kaip VSCode, Sublime, Atom arba Notepad++, taip pat galite naudoti reguliariąją išraišką paieškai ir pakeitimui. O UNIX sistemose tokios priemonės kaip grep, troškulys y Oho integruoti savo „Regex“ variklį.

Reguliarioji išraiška SEO ir URL valdyme

Regex yra pagrindinis URL optimizavimo, interneto maršrutizavimo ir dinaminio parametrų valdymo komponentas tokiose platformose kaip „WordPress“, „Joomla“ ir el. prekyba.

  • .htaccess ir mod_rewrite: Jie leidžia naudojant reguliariosios išraiškos taisykles paversti negražius, parametrais užpildytus URL į draugiškus adresus. Tokiu būdu, www.ejemplo.com/index.php?p=123 galima transformuoti į www.ejemplo.com/articulo/titulo-amigable, o tai pagerina tiek SEO, tiek naudotojų patirtį.
  • Parametrų filtravimas: Išskleiskite, išvalykite arba transformuokite URL parametrus, kad pritaikytumėte rezultatus skirtingiems paieškos kontekstams.

Naudodami reguliariosios išraiškos taisykles, žiniatinklio valdytojai gali kurti perrašymo šablonus, kurie identifikuoja ir modifikuoja URL komponentus, siekdami pagerinti struktūrą, optimizavimą ir supratimą paieškos sistemoms bei vartotojams.

Išplėstiniai reguliarieji reiškiniai: metodai ir ištekliai

Reguliariosios išraiškos ne tik leidžia atlikti tiesioginę paiešką; jos palaiko sąlyginį grupavimą, subrutines, rekursiją, atgalines nuorodas ir daug daugiau. Todėl jos yra esminis įrankis sudėtingoms užduotims atlikti.

  • Subprogramos ir atgalinės nuorodos: Jie leidžia rasti pasikartojančius modelius, simetrijas, sekas ir labai specifinius patvirtinimus.
  • Sąlyginiai: Atlikite skirtingas paieškas arba patvirtinimus, remdamiesi tuo, kas buvo užfiksuota ankstesnėse grupėse.
  • Rekursija: Kai kurie pažangūs varikliai leidžia apibrėžti sau taikomus šablonus, o tai labai naudinga apdorojant struktūrizuotus duomenis, tokius kaip XML arba JSON.
  • Globalūs modifikatoriai: (/g, /i, /m „Perl“ / „JavaScript“ kalbomis) leidžia ieškoti globaliai, nejaučiant didžiųjų ir mažųjų raidžių arba atliekant kelių eilučių paiešką.

Svarbiausi ištekliai reguliariųjų išraiškų mokymuisi

Jei norite praplėsti savo žinias, šie ištekliai jums pravers:

  • Vikipedija: Išsamūs teoriniai ir techniniai paaiškinimai.
  • Regular-Expressions.info: Nuorodos ir pamokos visų lygių žmonėms.
  • Šnipinėjimo lapai: Trumpos visų dažniausiai naudojamų operatorių, grupių ir taisyklių santraukos.
  • Interaktyvios pamokos: Tiesioginė praktika su pratimais ir tiesioginiu grįžtamuoju ryšiu.
  • Bendruomenės ir forumai: Mokykitės iš kitų vartotojų, užduokite klausimus ir dalinkitės savo asmeniniais patarimais.

Mokymasis naudotis reguliariosiomis išraiškomis suteikia didelį pranašumą teksto tvarkyme ir apdorojime, nes leidžia efektyviau ieškoti, tikrinti, transformuoti ir automatizuoti. Nuosekliai ir praktikuojantis reguliariųjų išraiškų šablonų rašymas tampa lengvesnis ir natūralesnis. Pasinaudokite internetiniais įrankiais ir praktiniais pratimais, pradėkite nuo paprastų pavyzdžių ir pereikite prie sudėtingesnių šablonų. Kai įsisavinsite principus, reguliariosios išraiškos (Regex) taps natūraliu jūsų kūrimo ir sistemų administravimo arsenalo papildymu, palengvinančiu užduotis, kurios anksčiau galėjo atrodyti sudėtingos ar nuobodžios.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje