Su terminalu: naudojant įprastas išraiškas

Vienas dalykas, kurį visada mėgau „Linux“ terminale, yra tai, ką galite pasiekti naudodami įprastus posakius. Nesvarbu, ar mums reikia rasti sudėtingą tekstą, ar jį pakeisti kažkuo kitu, reguliariųjų posakių naudojimas gali labai supaprastinti darbą. Pradėkime nuo pradžių:

ĮSPĖJIMAS: Šis įrašas yra skausmas užpakalyje. Nuolat skaitant šį įrašą gali prarasti sąmonę. Prieš skaitydami visą įrašą, padarykite pertraukas arba pasitarkite su savo gydytoju ar vaistininku.

Kas yra taisyklingoji išraiška?

Reguliari išraiška yra specialių simbolių serija, leidžianti apibūdinti norimą rasti tekstą. Pavyzdžiui, jei norėtume ieškoti žodžio „linux“, pakaktų įdėti tą žodį į naudojamą programą. Pats žodis yra taisyklinga išraiška. Kol kas tai atrodo labai paprasta, bet ką daryti, jei norime surasti visus skaičius tam tikrame faile? Arba visos eilutės, kurios prasideda didžiąja raide? Tais atvejais nebegalite įdėti paprasto žodžio. Išeitis yra naudoti reguliariąją išraišką.

Reguliarios išraiškos ir failų šablonai.

Prieš pradėdamas reguliarius posakius, noriu išsiaiškinti įprastą nesusipratimą dėl reguliarių posakių. Reguliarioji išraiška nėra tai, ką mes dedame kaip parametrą tokiose komandose kaip rm, cp ir kt., Norėdami nurodyti įvairius kietajame diske esančius failus. Tai būtų failo modelis. Reguliarūs posakiai, nors ir panašūs tuo, kad juose naudojami kai kurie įprasti simboliai, skiriasi. Failo šablonas suaktyvinamas kietajame diske esančiuose failuose ir pateikia tuos, kurie visiškai atitinka šabloną, o įprasta išraiška suaktyvinama prieš tekstą ir pateikia eilutes, kuriose yra ieškomas tekstas. Pavyzdžiui, reguliarioji išraiška, atitinkanti modelį *.* tai būtų kažkas panašaus ^.*\..*$

Reguliariųjų posakių tipai.

Ne visos programos naudoja tuos pačius įprastus posakius. Ne ką mažiau. Yra keletas daugiau ar mažiau standartinių reguliarių posakių tipų, tačiau yra programų, kurios šiek tiek keičia sintaksę, apima savo pačių plėtinius ar net naudoja visiškai skirtingus simbolius. Todėl, kai norite naudoti reguliarius posakius su programa, kurios nežinote gerai, pirmiausia reikia pažvelgti į programos vadovą arba dokumentaciją, kad pamatytumėte, kokie yra jos atpažįstami reguliarūs posakiai.

Pirma, yra du pagrindiniai reguliarių posakių tipai, kurie yra POSIX standarte, būtent tai naudoja „Linux“ įrankiai. Jie yra pagrindiniai ir išplėstiniai reguliarūs posakiai. Daugelis komandų, kurios veikia su įprastomis išraiškomis, pvz., „Grep“ arba „sed“, leidžia naudoti šiuos du tipus. Apie juos kalbėsiu toliau. Taip pat yra PERL stiliaus reguliaraus posakio, tada yra tokios programos kaip „vim“ arba „emacs“, kurios naudoja jų variantus. Atsižvelgiant į tai, ką mes norime daryti, gali būti tikslingiau naudoti vieną ar kitą.

Tikrųjų išraiškų testavimas.

Reguliariųjų posakių sintaksė visai nėra triviali. Kai turėsime parašyti sudėtingą reguliarią išraišką, būsime priešais iš pirmo žvilgsnio neįmanoma suprasti specialiųjų simbolių eilutę, todėl norint išmokti juos naudoti, būtina turėti būdą atlikti visus norimus ir matomus testus. rezultatus lengvai. Štai kodėl aš dabar ketinu pateikti kelias komandas, kuriomis mes galime atlikti bandymus ir eksperimentuoti viską, ko mums reikia, kol dominuoja taisyklingosios išraiškos.

Pirmoji yra „grep“ komanda. Tai komanda, kurią dažniausiai naudosime atlikdami paieškas. Sintaksė yra tokia:

grep [-E] 'REGEX' FICHERO
COMANDO | grep [-E] 'REGEX'

Aš rekomenduoju reguliarias išraiškas visada dėti vienomis kabutėmis, kad apvalkalas mūsų neišprotėtų. Pirmasis būdas yra faile rasti reguliarią išraišką. Antrasis leidžia filtruoti komandos išvestį naudojant įprastą išraišką. Pagal numatytuosius nustatymus grep naudoja pagrindinius reguliarius posakius. Parinktis -E skirta naudoti išplėstinius reguliarius posakius.

Apgaulė, kuri gali padėti suprasti, kaip veikia įprasti posakiai, yra tai, kad komandoje grep galima naudoti spalvas. Tokiu būdu bus paryškinta teksto dalis, atitinkanti įprastą išraišką, kurią naudojame. Norėdami suaktyvinti spalvą komandoje grep, tiesiog įsitikinkite, kad aplinkos kintamasis GREP_OPTIONS turi vertę --color, kurį galima padaryti naudojant šią komandą:

GREP_OPTIONS=--color

Mes galime jį įdėti į .bashrc, kad jis visada būtų suaktyvintas.

Kitas būdas naudoti įprastus posakius yra sed komandos naudojimas. Tai labiau tinka tekstui pakeisti, bet taip pat gali būti naudojama ieškant. Jo sintaksė būtų tokia:

sed -n[r] '/REGEX/p' FICHERO
COMANDO | sed -n[r] '/REGEX/p'

Komanda sed pagal numatytuosius nustatymus taip pat naudoja pagrindinius reguliarius posakius, išplėstinius reguliarius posakius galite naudoti su parinktimi -r.

Kita komanda, kurią taip pat noriu pavadinti, yra awk. Ši komanda gali būti naudojama daugeliui dalykų, nes ji leidžia rašyti scenarijus savo programavimo kalba. Jei norime surasti reguliarųjį išraišką faile arba komandos išvestyje, būdas jį naudoti būtų toks:

awk '/REGEX/' FICHERO
COMANDO | awk '/REGEX/'

Ši komanda visada naudoja išplėstinius reguliarius posakius.

Kad atliktume testus, mums taip pat reikės teksto, kuris bus pavyzdys ieškant jame. Galime naudoti šį tekstą:

- Lista de páginas wiki:

ArchLinux: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/

- Fechas de lanzamiento:

Arch Linux: 11-03-2002
Gentoo: 31/03/2002
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10/2004

Desde Linux Rulez.

Tai yra tekstas, kurį naudosiu likusio įrašo pavyzdžiams, todėl rekomenduoju nukopijuoti jį į failą, kad jis būtų patogus iš terminalo. Galite įdėti norimą vardą. Aš tai pavadinau regex.

Pradžios pamoka.

Dabar mes turime viską, ko reikia norint išbandyti įprastus posakius. Eime po truputį. Pateiksiu keletą paieškų su reguliariais posakiais pavyzdžių, kuriuose paaiškinsiu, kam skirtas kiekvienas veikėjas. Tai nėra labai geri pavyzdžiai, bet kadangi turėsiu labai ilgą postą, nenoriu jo dar labiau apsunkinti. Aš tiesiog nubrozdinsiu tai, ką galima padaryti reguliariais posakiais.

Paprasčiausia yra ieškoti konkretaus žodžio, pavyzdžiui, tarkime, kad norime rasti visas eilutes, kuriose yra žodis „Linux“. Tai yra lengviausia, nes mes turime tik parašyti:

grep 'Linux' regex

Ir mes galime pamatyti rezultatą:

ArkaLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Nuo Linux Rulezas.

Tai yra trys eilutės, kuriose yra žodis „Linux“, kuris, jei naudojome spalvų gudrybę, pasirodys paryškintas. Atkreipkite dėmesį, kad jis atpažįsta ieškomą žodį, net jei jis yra ilgesnio žodžio dalis, kaip „ArchLinux“. Tačiau jis neišryškina žodžio „linux“, kuris rodomas URL „https://wiki.archlinux.org/“. Taip yra todėl, kad jis ten rodomas su mažosiomis raidėmis „l“ ir mes jo ieškojome didžiosiomis raidėmis. „Grep“ komandoje yra galimybių tai padaryti, tačiau apie juos nekalbėsiu straipsnyje apie reguliarius posakius.

Atlikdami šį paprastą testą galime padaryti pirmąją išvadą:

  • Į įprastą išraišką įdėtas įprastas simbolis sutampa su savimi.

Tai reiškia, kad jei įdėsite raidę „a“, ji ieškos raidės „a“. Atrodo logiška, tiesa? 🙂

Dabar tarkime, kad norime ieškoti žodžio „CentO“, po kurio eina bet kuris simbolis, bet tik vienas simbolis. Tam galime naudoti simbolį ".", Kuris yra pakaitos simbolis, atitinkantis bet kurį simbolį, bet tik vieną:

grep 'CentO.' regex

Rezultatas yra toks:

Centos: http://wiki.centos.org/
CentO: 14-05-2004 03:32:38

Tai reiškia, kad „CentOS“ jis apima „S“, nors vienu atveju jis yra didžiosios, o kitu atveju - mažosios. Jei toje vietoje atsirastų koks nors kitas veikėjas, jis taip pat jį įtrauktų. Mes jau turime antrąją taisyklę:

  • Charakteris "." atitinka bet kurį simbolį.

Tai jau nėra taip trivialu, kaip atrodė, tačiau tuo negalime daug nuveikti. Eikime šiek tiek toliau. Tarkime, kad norime rasti eilutes, kuriose rodomi 2002 ir 2004 metai. Atrodo, kad tai dvi paieškos, tačiau jas galima atlikti vienu metu taip:

grep '200[24]' regex

Tai reiškia, kad mes norime rasti skaičių 200, po kurio eina 2 arba 4. Ir rezultatas yra toks:

„Arch Linux“: 11-03-2002
„Gentoo“: 31/03 /2002
CentO: 14-05-2004 03:32:38
Ubuntu: 20/10/2004

Kas mus priveda prie trečios taisyklės:

  • Keli skliaustuose esantys simboliai atitinka bet kurį skliausteliuose esantį simbolį.

Skliausteliuose daugiau žaidžiama. juos taip pat galima naudoti norint išskirti simbolius. Pvz., Tarkime, kad norime rasti svetaines, kuriose yra simbolis ":", bet po kurio nėra "/". Komanda būtų tokia:

grep ':[^/]' regex

Paprasčiausia yra „^“ kaip pirmojo simbolio įtraukimas į skliaustą. Žemiau galite įdėti visus norimus simbolius. Šios paskutinės komandos rezultatas yra toks:

„ArchLinux“: https://wiki.archlinux.org/
Gentoo: https://wiki.gentoo.org/wiki/Main_Page
CentOS: http://wiki.centos.org/
Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Arch Linux: 11-03-2002 „Gentoo“: 31 03 2002 CentOs: 14-05-2004 03:32:38 „Debian“: 16 08 1993 Ubuntu: 20/10/2004

Dabar už platinimo pavadinimų yra paryškinti „:“, bet ne URL adresai, nes URL po jais yra „/“.

  • „^“ Simbolio įtraukimas į skliaustą sutampa su bet kuriuo simboliu, išskyrus kitus skliausteliuose esančius simbolius.

Kitas dalykas, kurį galime padaryti, yra nurodyti simbolių diapazoną. Pvz., Jei norite ieškoti bet kurio skaičiaus, po kurio parašyta „-“, tai atrodytų taip:

grep '[0-9]-' regex

Tuo mes nurodome simbolį nuo 0 iki 9, o po to minuso ženklą. Pažiūrėkime rezultatą:

„Arch Linux“: 11-03-2002 m. CentOs: 14-05-2004 03: 32: 38

Skliausteliuose galite nurodyti kelis diapazonus, kad diapazonus net sumaišytumėte su atskirais simboliais.

  • Skliausteliuose įdėjus du simbolius, atskirtus „-“, sutampa bet kuris diapazono simbolis.

Pažiūrėkime, ar galime pasirinkti pirmąją URL dalį. Tas, kuris sako „http“ arba „https“. Jie skiriasi tik galutiniais „s“, todėl darykime tai taip:

grep -E 'https?' regex

Klausiamasis ženklas naudojamas, kad kairėje esantis simbolis būtų neprivalomas. Bet dabar mes pridėjome -E parinktį prie komandos. Taip yra todėl, kad tardymas yra išplėstinių reguliarių posakių bruožas. Iki šiol naudojome pagrindinius reguliarius posakius, todėl mums nieko nereikėjo dėti. Pažiūrėkime rezultatą:

„ArchLinux“: hTTPS: //wiki.archlinux.org/ „Gentoo“: hTTPS: //wiki.gentoo.org/wiki/Main_Page CentOS: http: //wiki.centos.org/ Debian: hTTPS: //wiki.debian.org/ Ubuntu: hTTPS: //wiki.ubuntu.com/

Taigi mes jau turime naują taisyklę:

  • Personažas, po kurio eina „?“ neatitinka šio simbolio arba jo nėra. Tai galioja tik išplėstiniams reguliariems posakiams.

Dabar rasime du visiškai skirtingus žodžius. Pažiūrėkime, kaip rasti eilutes, kuriose yra žodis „Debian“ ir „Ubuntu“.

grep -E 'Debian|Ubuntu' regex

Naudodami vertikalią juostą galime atskirti du ar daugiau skirtingų taisyklingų posakių ir ieškoti bet kurią iš jų atitinkančių eilučių:

debian: https://wiki.debian.org/
ubuntu: https://wiki.ubuntu.com/
debian: 16 / 08 / 1993
ubuntu: 20 / 10 / 2004
  • „|“ Simbolis naudojama atskirti kelis įprastus posakius ir atitinka bet kurį iš jų. Jis taip pat būdingas išplėstiniams reguliariems posakiams.

Tęskime. Dabar mes ieškosime žodžio „Linux“, bet tik ten, kur jis nėra prilipęs prie kito žodžio kairėje. Mes galime tai padaryti taip:

grep '\

Svarbus simbolis čia yra „<“, tačiau jo reikia išvengti, prieš jį dedant „\“, kad grepas jį interpretuotų kaip ypatingą simbolį. Rezultatas yra toks:

Arka Linux: 11-03-2002 Nuo Linux Rulezas.

Taip pat galite naudoti „\>“, kad ieškotumėte žodžių, kurie nėra visai šalia vienas kito. Pateikime pavyzdį. Pabandykime šią komandą:

grep 'http\>' regex

Jo sukurta produkcija yra tokia:

Centos: http: //wiki.centos.org/

Išėjo „Http“, bet ne „https“, nes „https“ „p“ dešinėje vis dar yra simbolis, kuris gali būti žodžio dalis.

  • Simboliai „<“ ir „>“ atitinka atitinkamai žodžio pradžią ir pabaigą. Šių simbolių reikia išvengti, kad jie nebūtų interpretuojami kaip pažodiniai simboliai.

Mes einame su šiek tiek sudėtingesniais dalykais. „+“ Simbolis sutampa su kairėje esančiu simboliu, kartojamas bent kartą. Šis simbolis galimas tik su išplėstomis reguliariomis išraiškomis. Juo galime ieškoti, pavyzdžiui, kelių iš eilės einančių skaičių sekų, prasidedančių „:“.

grep -E ':[0-9]+' regex

Rezultatas:

CentOs: 14 05 2004 03: 32: 38

Skaičius 38 taip pat paryškinamas, nes jis taip pat prasideda „:“.

  • „+“ Simbolis sutampa su kairėje esančiu simboliu, kartojamas bent kartą.

Taip pat galite valdyti pakartojimų skaičių naudodami „{“ ir „}“. Idėja yra uždėti petnešomis skaičių, nurodantį tikslų norimų pakartojimų skaičių. Taip pat galite pateikti diapazoną. Pažiūrėkime dviejų atvejų pavyzdžius.

Pirmiausia surasime visas keturių skaitmenų sekas:

grep '[0-9]\{4\}' regex

Atkreipkite dėmesį, kad garbanotųjų petnešų reikia išvengti, jei naudojame pagrindinius taisyklinguosius posakius, bet ne, jei naudojame išplėstinius. Pratęsus būtų taip:

grep -E '[0-9]{4}' regex

Ir rezultatas abiem atvejais būtų toks:

„Arch Linux“: 11-03-2002
„Gentoo“: 31/03 /2002
CentO: 14-05-2004 03:32:38
Debian: 16/08/1993
„Ubuntu“: 20/10 /2004
  • Simboliai „{“ ir „}“ su skaičiumi tarp jų sutampa su ankstesniu simboliu, pakartotu nurodytą skaičių kartų.

Dabar kitas pavyzdys su petnešomis. Tarkime, kad norime rasti žodžius, kuriuose yra nuo 3 iki 6 mažųjų raidžių. Mes galėtume atlikti šiuos veiksmus:

grep '[a-z]\{3,6\}' regex

Rezultatas būtų toks:

- Lista de puslapiss wiki: ĮrchLinux: hTTPS: //wiki.Archlinux.org/ Gper daug: hTTPS: //wiki.gentoo.org/wiki/Main_Pamžius
CENTOS: http: //wiki.Centos.org/ Debianas: hTTPS: //wiki.Debian.org/ ARBAsukilimas: hTTPS: //wiki.ubuntu.lt/ - Fpraleidote de Išleidimo: Įrch Linux: 11-03-2002 Gper daug: 31 03 2002 CENTOs: 14-05-2004 03:32:38
Debianas: 16 08 1993 Usukilimas: 20 10 2004 Dtai yra Linux Rulez.

Kuris, kaip matote, nėra panašus į tai, ko mes norėjome. Taip yra todėl, kad taisyklingoji išraiška randa raides kituose žodžiuose, kurie yra ilgesni. Išbandykime šią kitą versiją:

grep '\<[a-z]\{3,6\}\>' regex

Rezultatas:

- Puslapių sąrašas wiki: ArchLinux: hTTPS: //wiki.archlinux.org/ „Gentoo“: hTTPS: //wiki.gentoo.org/wiki/ Pagrindinis_Pasalis CentOS: http: //wiki.Centos.org/ Debian: hTTPS: //wiki.Debian.org/ „Ubuntu“: hTTPS: //wiki.ubuntu.lt/

Tai jau atrodo labiau tai, ko mes norėjome. Tai, ką mes padarėme, reikalauja, kad žodis prasidėtų prieš pirmąją raidę ir baigtųsi tik po paskutinės.

  • Simboliai „{“ ir „}“, tarp kurių yra du skaičiai, atskirti kableliu, sutampa su ankstesniu simboliu, kuris kartojo skaičių, nurodytą dviem skaičiais.

Dabar pažvelkime į simbolį, kuris yra „+“ pagrindas. Tai „*“ ir jo veikimas yra labai panašus tik tuo, kad sutampa su bet kokiu simbolių skaičiumi, įskaitant nulį. Tai reiškia, kad jis daro tą patį kaip „+“, tačiau nereikalauja, kad kairėje esantis simbolis būtų rodomas tekste. Pavyzdžiui, pabandykime ieškoti tų adresų, kurie prasideda wiki ir baigiasi org:

grep 'wiki.*org' regex

Pažiūrėkime rezultatą:

„ArchLinux“: https: //wiki.archlinux.org/ „Gentoo“: https: //wiki.gentoo.org/ wiki / „Main_Page CentOS“: http: //wiki.centos.org/ „Debian“: https: //wiki.debian.org/

Perfecto.

Dabar paskutinis veikėjas, kurį pamatysime. Simbolis „\“ naudojamas norint išvengti simbolio iš dešinės, kad jis prarastų savo ypatingą reikšmę. Pvz .: Tarkime, kad mes norime surasti linijas, kurios baigiasi tašku. Pirmas dalykas, kuris mums gali kilti, gali būti toks:

grep '.$' regex

Rezultatas nėra tai, ko mes ieškome:

- Wiki puslapių sąrašas:
„ArchLinux“: https://wiki.archlinux.org/
„Gentoo“: https://wiki.gentoo.org/wiki/Main_Page
„CentOS“: http://wiki.centos.org/
„Debian“: https://wiki.debian.org/
„Ubuntu“: https://wiki.ubuntu.com/
- Išleidimo datos: „Arch Linux“: 11-03-2002
„Gentoo“: 31 03 2002
CentOs: 14-05-2004 03:32:38
Debianas: 16 08 1993
„Ubuntu“: 20 10 2004
Desde Linux Rulezas.

Taip yra todėl, kad „. atitinka bet ką, todėl reguliarusis posakis atitinka paskutinį kiekvienos eilutės simbolį, kad ir koks jis būtų. Sprendimas yra toks:

grep '\.$' regex

Dabar rezultatas yra tai, ko mes norime:

Desde Linux Rulezas.

Game Over

Nors reguliarių posakių tema yra tokia sudėtinga, kad duočiau straipsnių seriją, manau, kad aš jums jau suteikiau pakankamai skausmo. Jei pavyko atvykti, sveikiname. O jei visa tai perskaitėte per vieną posėdį, vartokite aspiriną ​​ar pan., Nes tai negali būti gerai.

Kol kas viskas. Jei jums patinka šis straipsnis, gal galiu parašyti kitą. Tuo tarpu rekomenduoju išbandyti visus terminalo įprastus posakius, kad aiškiai matytumėte, kaip jie veikia. Ir atminkite: HTML analizuoti naudojant įprastas išraiškas gali tik Chuckas Norrisas.


28 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Ezequiel sakė

    Koks būtų mūsų gyvenimas be regex?
    Straipsnis yra labai naudingas, bet aš jį po truputį skaitysiu. Labai ačiū.

    1.    Hexborg sakė

      Ačiū už komentarą. Aš vis dar netikiu, kad mano straipsnis pasirodė. 🙂 Išleista su klaida, bet tikiuosi, kad tai bus naudinga. 🙂

  2.   Skalibūras sakė

    Ačiū youssssssss! ..

    Jau seniai turėjau šiek tiek mokytis apie įprastus posakius .. .. dėkoju už mokymą .. ir nuoseklų vadovą, kad išmoktum kiekvieną iš jų ..

    Labai gerai! .. .. Aš gausiu to aspirino .. ee

    1.    Hexborg sakė

      Jokiu problemu. Drąsa ir reguliarūs posakiai negali būti su tavimi. 🙂

  3.   tanrax sakė

    Fantastiškas įrašas! Puikus darbas. Įdomu, kiek valandų tau užtruko 😀

    1.    Hexborg sakė

      DAUG JUOKO!! Kyla klausimas: kiek valandų man būtų reikėję, jei būčiau pasakęs viską, ką ketinau pasakyti? Begalinis !! 🙂

  4.   Tamuzas sakė

    vieno dalyko nezinau, geras straipsnis!

    1.    Hexborg sakė

      Ačiū. Malonu tuo pasidalinti su jumis.

  5.   helena_ryuu sakė

    puikus paaiškinimas. sveikinu! tikrai naudinga!

    1.    Hexborg sakė

      Džiaugiuosi, kad jums tai buvo naudinga. Taigi malonu rašyti.

  6.   kovos sakė

    Tai turėtų būti kažkur ypatinga. Kaip ir „Panašūs“, bet turi labai specifinį naudingumą. Gana naudinga, nors norėčiau, kad tai būtų taikoma Vimui.

    1.    Hexborg sakė

      Tai klausimas, kaip užduoti sau klausimą. Turiu omenyje dar keletą straipsnių apie reguliarias išraiškas. Aš galėčiau kalbėti apie vim juose. Jis turi tam tikrų skirtumų nuo to, ką aš paaiškinau šiame straipsnyje. Tai reikalas susitvarkyti. 🙂

  7.   Fernando sakė

    Gerai!

    Muy bueno tu artículo, es curioso, recientemente (ahora mismo) he publicado en mi web una entrada que llevaba preparando desde hace unos días donde he recogido una lista de metacaracteres para las expresiones regulares y algunos ejemplos. ¡Y ha sido justo entrar en DesdeLinux y ver una entrada sobre la misma temática!

    Jei tai kokia paguoda, manoji yra DAUG PUSIAU Y

    Be abejo, regex yra vienas iš naudingiausių dalykų, aš paprastai juos naudoju norėdamas apkarpyti komandų išvestį ir išsaugoti mane dominančią dalį, tada, pavyzdžiui, bendrauju su ja „bash“ scenarijuje. Aš taip pat daug jų naudojau universitete, ir jie yra gyvybiškai svarbūs rengiant kompiliatorius (apibrėžiant leksikografinius ir parserius). Trumpai tariant, visas pasaulis.

    Sveikinimai ir labai labai geras darbas.

    1.    Hexborg sakė

      Labai ačiū.

      Man patiko ir tavo straipsnis. Tai glaustesnė nei mano. Tai gali būti greita nuoroda. Tai sutapimas, kad mes juos parašėme tuo pačiu metu. Matote, kad žmonės domisi šia tema. 🙂

  8.   Elery sakė

    Reguliarūs manekenių posakiai =), dabar man aiškiau, beje, vienas iš būdų turėti išvestį su spalva „grep“ yra sukurti slapyvardį .bashrc pseudonime grep = 'grep –color = always' tai kažkam tinka.

    saludos

    1.    Hexborg sakė

      Tiesa. Tai dar vienas būdas tai padaryti. Dėkojame už indėlį. 🙂

  9.   KZKG ^ Gaara sakė

    O_O ... gabalas !!! O_O ...
    Labai ačiū už įrašą, kurį laiką laukiau kažko panašaus, lol, palieku atvirą, kad galėčiau ramiai perskaityti namuose be jokio vargo sutelkti lol.

    Ačiū už straipsnį, tikrai darau 😀

    1.    Hexborg sakė

      Žinojau, kad tau patiks. DAUG JUOKO!! Tiesa ta, kad trūksta daugelio dalykų, bet aš jau galvoju apie antrąją dalį. 🙂

  10.   Elieceris Tatesas sakė

    Puikus straipsnis, jei tik būčiau vakar jį perskaičiusi, šiandien duota klasė mano mokiniams būtų buvusi dar lengvesnė!

    1.    Hexborg sakė

      DAUG JUOKO!! Blogai, kad pavėlavau, bet džiaugiuosi, kad tai naudinga. 🙂

  11.   „LeoToro“ sakė

    Pagaliau !!!, labai geras įrašas .... Pagaliau radau tai, kas aiškiai paaiškina įprastus posakius ...

    1.    Hexborg sakė

      Ten yra daug informacijos, tačiau sunkiau rasti tai, kas lengvai suprantama. Džiaugiuosi, kad užpildžiau tą spragą. 🙂

      Sveikinimai.

  12.   Šekspyro Rodas sakė

    Ei, man reikia pagalbos, turiu atlikti paiešką aplanke / var / logs formatu: yymmdd, o žurnalai yra tokie kaip 130901.log -130901.log, turiu ieškoti visuose, kurie yra nuo rugsėjo 1 d. Iki spalio 11 d. Vienintelis dalykas, kurį pavyko padaryti, buvo pašalinti visą rugsėjį, bet aš nežinau, kaip atlikti visą grandinę:

    pvz .: 1309 [0-3] grąžina man žurnalus nuo rugsėjo 1 iki 30, bet aš nežinau, kaip patekti į tą pačią grandinę nuo spalio 1 iki 11 dienos.

    1.    Hexborg sakė

      Tai padaryti naudojant įprastus posakius yra šiek tiek sudėtinga. Man atrodo, kad kažkas panašaus gali veikti:

      13(09[0-3]|10(0|1[01]))

      Tai išplėstinė taisyklingoji išraiška. Jūs nesakote, kurį įrankį naudojate, todėl negaliu pateikti daugiau informacijos.

      Bet kokiu atveju, manau, kad taip yra, užuot vartojus reguliarius posakius, geriau tai daryti su radimu. Galite išbandyti kažką tokio:

      rasti. -newermt '01 sep '-a! naujausias „11 okt.“ atspaudas

      Sėkmė. Tikiuosi, kad tai gali jums padėti.

  13.   čipas sakė

    Sveiki! Pirmiausia norėjau padėkoti už jūsų darbą, nes šis puslapis yra mano geriausių „Linux“ svetainių „top 3“.
    Aš buvau praktikuojantis ir nežinojau, kodėl „RegExp“ telefono numeriu man netiko ir būtent todėl man trūko „-E“ (kurį supratau šio įrašo dėka).
    Norėjau jūsų paklausti, ar nežinote gero pdf failo ar svetainės, kurioje yra „RegExp“ pratimų, nors turėdami šiek tiek fantazijos galite praktiškai patys juos sugalvoti.

    Sveikinimai, Pablo.

  14.   Rami sakė

    Labai gerai, aš ką tik perskaičiau, ir taip, dabar man reikia aspirino 🙂

  15.   Óscar sakė

    Geriausias reguliarių posakių paaiškinimas. Dėkoju autorei už pasidalinimą šiuo darbu.

    Pasisveikinimas.

  16.   Aleksaderis sakė

    Man labai patiko labai geras paaiškinimas