Terminaliga: regulaaravaldiste kasutamine

Üks asi, mida ma Linuxi terminali juures alati armastanud olen, on see, mida saab saavutada regulaarsete avaldiste abil. Kas peame leidma keeruka teksti või asendama selle millegi muuga, võib regulaaravaldiste kasutamine seda tööd oluliselt lihtsustada. Alustame algusest:

HOIATUS: See postitus on piin. Selle postituse pidev lugemine võib põhjustada teadvuse kaotuse. Enne kogu postituse lugemist tehke vaheaegu või küsige oma arstilt või apteekrilt.

Mis on regulaarne väljend?

Tavaväljend on rida erimärke, mis võimaldavad meil kirjeldada teksti, mida soovime leida. Näiteks kui me tahtsime otsida sõna "linux", piisab selle sõna lisamisest meie kasutatavasse programmi. Sõna ise on regulaarne väljend. Siiani tundub see väga lihtne, aga mis siis, kui tahame leida kõik arvud teatud failist? Või kõik read, mis algavad suurtähega? Sellistel juhtudel ei saa te enam lihtsat sõna panna. Lahendus on regulaaravaldise kasutamine.

Regulaaravaldised vs failimustrid.

Enne regulaarsete väljendite juurde asumist tahan selgeks teha tavaliste väljendite osas levinud arusaamatused. Regulaaravaldus pole see, mida me parameetriks paneme käskudesse nagu rm, cp jne, et viidata kõvakettal olevatele erinevatele failidele. See oleks failimuster. Regulaarsed väljendid, ehkki sarnased, kuna kasutavad mõnda tavalist märki, on erinevad. Failimuster käivitatakse kõvakettal olevate failide vastu ja tagastab need, mis sobivad mustriga täielikult, samas kui tavaväljend käivitatakse teksti vastu ja tagastatakse read, mis sisaldavad otsitud teksti. Näiteks mustrile vastav regulaarne avaldis *.* see oleks midagi sellist ^.*\..*$

Regulaaravaldiste tüübid.

Kõik programmid ei kasuta samu regulaaravaldisi. Mitte palju vähem. Enam-vähem tavalisi regulaaravaldisi on mitut tüüpi, kuid on programme, mis süntaksi veidi muudavad, sisaldavad oma laiendeid või kasutavad isegi täiesti erinevaid märke. Seega, kui soovite kasutada regulaaravaldisi programmiga, mida te hästi ei tunne, on kõigepealt vaja vaadata programmi käsiraamatut või dokumentatsiooni, et näha, millised on selle tunnustatud regulaaravaldised.

Esiteks on regulaaravaldiste kaks peamist tüüpi, mis sisalduvad POSIX-i standardis, mida Linuxi tööriistad kasutavad. Need on põhi- ja laiendatud regulaaravaldised. Paljud regulaarsete väljenditega töötavad käsud, näiteks grep või sed, võimaldavad teil neid kahte tüüpi kasutada. Räägin neist allpool. Samuti on olemas PERL-stiilis regulaaravaldised ja siis veel sellised programmid nagu vim või emacs, mis kasutavad nende variante. Sõltuvalt sellest, mida me teha tahame, võib olla sobivam kasutada üht või teist.

Regulaaravaldiste testimine.

Regulaaravaldiste süntaks pole midagi tühist. Kui peame kirjutama keerulise regulaaravaldise, seisame silmitsi erimärkide rida, mida esmapilgul pole võimalik mõista, nii et nende kasutamise õppimiseks on hädavajalik, et teil oleks võimalus teha kõiki teste, mida soovime ja näeme tulemusi lihtsalt. Seetõttu panen nüüd mitu käsku, millega saame teste teha ja kõike vajalikku katsetada, kuni meil on domineerivad regulaaravaldised.

Esimene neist on käsk grep. Seda käsku kasutame otsingute tegemiseks kõige sagedamini. Süntaks on järgmine:

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

Regulaaravaldised soovitan alati panna üksikjutumärkidesse, et kest sellest üles ei saaks. Esimene võimalus on leida failist regulaaravaldis. Teine võimaldab filtreerida käsu väljundi regulaaravaldise kaudu. Vaikimisi kasutab grep põhilisi regulaaravaldisi. Valik -E on laiendatud regulaaravaldiste kasutamiseks.

Trikk, mis aitab meil näha, kuidas regulaarsed väljendid töötavad, on lubada värvikasutust käskus grep. Nii tõstetakse esile see osa tekstist, mis sobib meie kasutatava tavaväljendiga. Grep-käsu värvi aktiveerimiseks veenduge lihtsalt, et keskkonnamuutuja oleks GREP_OPTIONS sisaldama väärtust --color, mida saab teha selle käsuga:

GREP_OPTIONS=--color

Võime selle alati aktiveerida .bashrc-faili.

Teine võimalus regulaarsete avaldiste kasutamiseks on käsu sed kasutamine. See sobib pigem teksti asendamiseks, kuid seda saab kasutada ka otsimiseks. Selle süntaks oleks järgmine:

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

Sed-käsk kasutab vaikimisi ka põhilisi regulaaravaldisi, laiendatud regulaaravaldisi saate kasutada suvandiga -r.

Teine käsk, mille tahan ka nimetada, on awk. Seda käsku saab kasutada paljude asjade jaoks, kuna see võimaldab teil skripte kirjutada oma programmeerimiskeeles. Kui soovime otsida failist või käsu väljundist regulaarset avaldist, oleks selle kasutamise viis järgmine:

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

See käsk kasutab alati laiendatud regulaaravaldisi.

Testide tegemiseks vajame ka teksti, mis on selle otsimiseks näiteks. Saame kasutada järgmist teksti:

- 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.

Seda teksti kasutan ülejäänud postituse näidete jaoks, seega soovitan teil see faili kopeerida, et see oleks terminalist käepärane. Võite panna soovitud nime. Olen seda nimetanud regexiks.

Algustund.

Nüüd on meil olemas kõik, mis on vajalik tavaväljendite testimise alustamiseks. Läheme tasapisi. Panen mitu regulaarsete väljenditega otsingu näidet, milles selgitan, milleks iga tegelane on mõeldud. Need pole eriti head näited, aga kuna mul on väga pikk postitus, siis ei taha ma seda enam keeruliseks teha. Ja ma lihtsalt kratsin pinda, mida saab regulaarsete väljenditega teha.

Kõige lihtsam on otsida kindlat sõna, näiteks oletame, et tahame otsida kõiki ridu, mis sisaldavad sõna "Linux". See on kõige lihtsam, sest me peame kirjutama ainult:

grep 'Linux' regex

Ja näeme tulemust:

KaarLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Alates Linux Rulez.

Need on kolm rida, mis sisaldavad sõna "Linux", mis, kui oleme värvitrikki kasutanud, ilmuvad esiletõstetuna. Pange tähele, et see tunneb otsitavat sõna ära ka siis, kui see on osa pikemast sõnast nagu ArchLinuxis. Siiski ei tõsteta esile sõna "linux", mis ilmub URL-is "https://wiki.archlinux.org/". Seda seetõttu, et see ilmub seal väiketähega "l" ja me oleme seda otsinud suurtähtedega. Grep-käsul on selleks võimalused, kuid ma ei hakka neist rääkima regulaaravaldisi käsitlevas artiklis.

Selle lihtsa testi abil saame teha esimese järelduse:

  • Tavaväljendisse lisatud tavaline märk sobib iseendaga.

Mis tähendab, et kui panete tähe "a", siis otsib see tähte "a". Tundub loogiline, eks? 🙂

Oletame nüüd, et tahame otsida sõna "CentO", millele järgneb ükskõik milline märk, kuid ainult üks märk. Selleks võime kasutada märki ".", Mis on metamärk, mis sobib mis tahes tähemärgiga, kuid ainult üks:

grep 'CentO.' regex

Ja tulemus on:

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

Mis tähendab, et see sisaldab "S" tähte "CentOS", kuigi ühel juhul on see suur ja teisel väiketäht. Kui selles kohas ilmuks mõni muu tegelane, sisaldaks see ka seda. Meil on juba teine ​​reegel:

  • Tegelaskuju "." sobib mis tahes tähemärgiga.

See pole enam nii tühine, nagu tundus, kuid sellega ei saa me palju teha. Läheme natuke edasi. Oletame, et tahame leida read, milles esinevad aastad 2002 ja 2004. Need näivad olevat kaks otsingut, kuid neid saab korraga teha nii:

grep '200[24]' regex

Mis tähendab, et me tahame leida numbri 200, millele järgneb 2 või 4. Ja tulemus on järgmine:

ArchLinux: 11-03-2002
Gentoo: 31/03 /2002
CentO: 14-05-2004 03:32:38
Ubuntu: 20/10/2004

Mis viib meid kolmanda reegli juurde:

  • Sulgudes suletud mitu tähemärki sobivad ükskõik millise sulgudes oleva tähemärgiga.

Sulgudes on rohkem mängu. neid saab kasutada ka märkide välistamiseks. Oletame näiteks, et tahame otsida saite, kus ilmub märk ":", kuid millele ei järgne "/". Käsk oleks selline:

grep ':[^/]' regex

Asi on lihtsalt selles, et sulgusse sisestatakse esimene täht "^". Allpool saate panna kõik soovitud tähemärgid. Selle viimase käsu tulemus on järgmine:

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 Gentoo: 31 CentOs: 14-05-2004 03:32:38 Debian: 16 Ubuntu: 20/10/2004

Nüüd on levinimede taga ":" esile tõstetud, kuid mitte URL-ides olevad, kuna URL-ide taga on "/".

  • Märgi "^" panemine sulgude algusesse sobib mis tahes tähemärgiga, v.a teised sulgudes olevad märgid.

Teine asi, mida saame teha, on märkide vahemiku määramine. Näiteks mis tahes numbri otsimiseks, millele järgneb "-", näeks see välja järgmine:

grep '[0-9]-' regex

Sellega täpsustame märgi vahemikus 0 kuni 9 ja seejärel miinusmärki. Vaatame tulemust:

ArchLinux: 11-03-2002 CentOs: 14-05-2004 03: 32: 38

Sulgudes saate määrata mitu vahemikku, et vahemikke isegi üksikute märkidega segada.

  • Kahe tähega, mis on eraldatud sulgudega "-", sobib mis tahes tähemärk vahemikus.

Vaatame nüüd, kas saame valida URL-ide esimese osa. See, mis ütleb „http” või „https”. Need erinevad ainult lõplike s-de poolest, nii et tehkem seda järgmiselt:

grep -E 'https?' regex

Küsimärki kasutatakse vasakpoolse märgi valikuliseks muutmiseks. Kuid nüüd oleme lisanud käsule valiku -E. Seda seetõttu, et ülekuulamine on laiendatud regulaaravaldiste tunnus. Siiani kasutasime põhilisi regulaaravaldisi, nii et polnud vaja midagi panna. Vaatame tulemust:

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/

Nii et meil on juba uus reegel:

  • Tegelane, millele järgneb "?" sobib selle tähemärgiga või pole ühtegi. See kehtib ainult laiendatud regulaaravaldiste kohta.

Nüüd leiame kaks täiesti erinevat sõna. Vaatame, kuidas leida ridu, mis sisaldavad nii sõna "Debian" kui ka "Ubuntu".

grep -E 'Debian|Ubuntu' regex

Vertikaalse riba abil saame eraldada kaks või enam erinevat regulaarset avaldist ja otsida ridu, mis sobivad ühega neist:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Tegelane «|» on mõeldud mitmete regulaaravaldiste ja vaste eraldamiseks neist. See on omane ka laiendatud regulaaravaldistele.

Jätkame. Nüüd otsime sõna "Linux", kuid ainult seal, kus see pole vasakul vasakul oleva sõna külge kinni jäänud. Saame seda teha nii:

grep '\

Siin on oluline tähemärk "<", kuid sellest tuleb pääseda, pannes "\" ette, nii et grep tõlgendab seda erimärgina. Tulemus on järgmine:

Kaar Linux: 11-03-2002 Alates Linux Rulez.

"\>" Abil saate otsida ka sõnu, mis pole üksteise kõrval. Läheme näitega. Proovime seda käsku:

grep 'http\>' regex

Selle tulemus on järgmine:

CentOS: http: //wiki.centos.org/

Välja tuli "Http", kuid mitte "https", sest "https" -is on "p" -st paremal veel märk, mis võib olla sõna osa.

  • Tähemärgid "<" ja ">" vastavad vastavalt sõna algusele ja lõpule. Nendest tähemärkidest tuleb põgeneda, et neid ei tõlgendataks sõnasõnaliste märkidena.

Me läheme asjadega veidi keerulisemaks. "+" Märk sobib vähemalt üks korduva vasakpoolse tähemärgiga. See märk on saadaval ainult laiendatud regulaaravaldistega. Sellega saame otsida näiteks järjestikusest mitmest numbrist koosnevaid järjestusi, mis algavad tähega ":".

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

Tulemus:

CentOs: 14-05-2004 03: 32: 38

Number 38 on esile tõstetud ka seetõttu, et see algab ka tähega ":".

  • "+" Märk sobib tähemärgiga vasakule, mida korratakse vähemalt üks kord.

Korduste arvu saate juhtida ka "{" ja "}" abil. Idee on panna sulgudes arv, mis näitab täpset korduste arvu, mida soovime. Võite ka vahemiku panna. Vaatame näiteid kahest juhtumist.

Kõigepealt leiame kõik olemasolevad neljakohalised järjestused:

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

Pange tähele, et peate lokkisulgudest põgenema, kui kasutate põhilisi regulaaravaldisi, kuid mitte siis, kui kasutate laiendatud väljendeid. Pikendusega oleks see järgmine:

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

Mõlemal juhul oleks tulemus järgmine:

ArchLinux: 11-03-2002
Gentoo: 31/03 /2002
CentO: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10 /2004
  • Märgid "{" ja "}", mille vahel on arv, vastavad eelmisele tähemärgile, mida korrati määratud arv kordi.

Nüüd teine ​​näide traksidega. Oletame, et tahame leida sõnu, kus on 3–6 väiketähte. Võiksime teha järgmist:

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

Ja tulemus oleks järgmine:

- Lista de lehekülgs wiki: TOrchLinux: https: //wiki.Archlinux.org/ Gliiga: https: //wiki.gentoo.org/wiki/Main_Pvanus
CineOS: http: //wiki.CentOS.org/ Debian: https: //wiki.debian.org/ VÕImäss: https: //wiki.ubuntu.com/ - Fsa igatsed de kaater: TOrch Linux: 11-03-2002 Gliiga: 31 CineOs: 14-05-2004 03:32:38
Debian: 16 Umäss: 20 Dsee on Linux Rulez.

Mis, nagu näete, ei sarnane eriti sellega, mida me tahtsime. Seda seetõttu, et regulaaravaldis leiab tähed teistest pikematest sõnadest. Proovime seda teist versiooni:

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

Tulemus:

- lehtede loend 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/

See näeb juba välja nagu see, mida me tahtsime. Oleme nõudnud, et sõna algaks vahetult enne esimest tähte ja lõppeks vahetult pärast viimast tähte.

  • Tähemärgid "{" ja "}", mille vahel on kaks komaga eraldatud numbrit, vastavad eelmisele tähemärgile, kui mitu korda nende kahe numbriga tähistati.

Vaatame nüüd märki, mis on "+" algarv. See on "*" ja selle toimimine on väga sarnane, ainult et see sobib suvalise arvu märkidega, sealhulgas nulliga. See tähendab, et see teeb sama, mis "+", kuid ei nõua, et vasakul olev märk tekstis ilmuks. Näiteks proovime otsida neid aadresse, mis algavad wikist ja lõpevad orgiga:

grep 'wiki.*org' regex

Vaatame tulemust:

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

Perfecto.

Nüüd viimane tegelane, keda näeme. Märki "\" kasutatakse tähemärgi paremale poole pääsemiseks, et see kaotaks oma erilise tähenduse. Näiteks: Oletame, et tahame leida punktiga lõppevad jooned. Esimene asi, mis meile pähe võib tulla, võib olla järgmine:

grep '.$' regex

Tulemus pole see, mida me otsime:

- Wiki lehtede loend:
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/
- Väljaandmise kuupäevad: Arch Linux: 112
Gentoo: 312
CentOs: 14-05-2004 03:32:38
Debian: 163
Ubuntu: 204
Desde Linux Rulez.

Seda seetõttu, et "." see sobib kõigega, nii et regulaaravaldis sobib iga rea ​​viimase tähemärgiga, ükskõik mis see ka pole. Lahendus on selline:

grep '\.$' regex

Nüüd on tulemus see, mida me tahame:

Desde Linux Rulez.

Mäng on läbi

Kuigi regulaaravaldiste teema on nii keeruline, et annaksin artiklite sarja jaoks, arvan, et olen teile juba piisavalt valu andnud. Kui teil on õnnestunud kohale jõuda, siis palju õnne. Ja kui olete selle kõik ühe korraga läbi lugenud, võtke aspiriin või midagi muud, sest see ei saa hea olla.

Praegu on see kõik. Kui teile see artikkel meeldib, võite ehk kirjutada mõne muu. Seniks soovitan teil proovida kõiki terminali tavaväljendeid, et nende toimimine selgelt näha. Ja pidage meeles: ainult Chuck Norris saab HTML-i sõeluda regulaaravaldiste abil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Ezequiel DIJO

    Milline oleks meie elu ilma regexita?
    Artikkel on väga kasulik, kuid loen seda vähehaaval. Tänud.

    1.    hexborg DIJO

      Tänan kommentaari eest. Ma ei usu siiani, et minu artikkel on välja tulnud. 🙂 See on välja tulnud mõne veaga, kuid loodan, et see on kasulik. 🙂

  2.   Scalibur DIJO

    Aitäh youssssssss! ..

    Mõni aeg tagasi pidin ma natuke uurima regulaarsete väljendite kohta .. .. tänan teid õpetamise eest .. ja samm-sammult juhendit, et õppida neist kõiki ..

    Väga hea! .. .. ma saan selle aspiriini kätte ... ee

    1.    hexborg DIJO

      Olete teretulnud. Julgus ja see, et regulaarsed väljendid ei saa teiega kaasa. 🙂

  3.   tanrax DIJO

    Fantastiline postitus! Suurepärane töö. Huvitav, mitu tundi see teil aega võttis 😀

    1.    hexborg DIJO

      LOL !! Küsimus on: mitu tundi oleks mul läinud, kui oleksin öelnud kõik, mida kavatsesin öelda? Lõpmatu !! 🙂

  4.   Tammuz DIJO

    üht ma ei teadnud, hea artikkel!

    1.    hexborg DIJO

      Aitäh. Seda on rõõm teiega jagada.

  5.   helena_ryuu DIJO

    suurepärane seletus. palju õnne! tõesti kasulik!

    1.    hexborg DIJO

      Mul on hea meel, et see teile kasulik oli. Seega on rõõm kirjutada.

  6.   Anti DIJO

    See peaks minema kuhugi erilisse. Nagu esiletõstetud, kuid millel on väga konkreetne kasulikkus. Üsna kasulik, kuigi tahaksin, et see Vimile rakenduks.

    1.    hexborg DIJO

      See on küsimus, et küsin endalt. Mõtlen veel paar artiklit regulaarsete väljendite kohta. Ja ma võiksin rääkida nendest vimidest. Sellel on mõningaid erinevusi sellest, mida ma selles artiklis selgitasin. Asi on sellega läbi saada. 🙂

  7.   Fernando DIJO

    Hea!

    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!

    Kui see lohutab, siis minu oma on PALJU PUSSEM 😀

    Kindlasti on regex üks kõige kasulikumaid asju, tavaliselt kasutan neid käskude väljundi kärpimiseks ja mind huvitava osa hoidmiseks ning suhtlen sellega näiteks bashi skriptis. Olen neid ka ülikoolis palju kasutanud ja neil on koostajate ülesehitamisel (leksikograafiliste ja parserite määratluses) ülioluline tähtsus. Ühesõnaga terve maailm.

    Tervitused ja väga väga hea töö.

    1.    hexborg DIJO

      Suur aitäh.

      Mulle meeldis ka teie artikkel. See on lühem kui minu oma. See võib olla kiire viide. See on juhus, et oleme need samal ajal kirjutanud. Näete, et inimesi huvitab see teema. 🙂

  8.   Elery DIJO

    Regulaarsed väljendid mannekeenidele =), nüüd on mulle selgem, muide, üks võimalus väljundi saamiseks värviga grepi jaoks on luua alias kataloogis .bashrc alias grep = 'grep –color = alati', juhul kui see kellelegi sobib .

    seoses

    1.    hexborg DIJO

      Tõsi. See on veel üks viis seda teha. Täname sisendi eest. 🙂

  9.   KZKG ^ Gaara DIJO

    O_O ... tükk panust !!! O_O ...
    Suur tänu postituse eest, ootasin mõnda aega midagi sellist lol, jätan selle lahtiseks, et seda kodus rahulikult lugeda, ilma et oleks vaja vaeva lol kontsentreerida.

    Tänan artikli eest, ma tõesti teen seda 😀

    1.    hexborg DIJO

      Ma teadsin, et see sulle meeldib. LOL !! Tõsi on see, et paljud asjad on puudu, kuid mul on juba teine ​​osa meeles. 🙂

  10.   Eliecer Tates DIJO

    Suurepärane artikkel, kui ma oleksin seda eile lugenud, oleks täna antud tund minu õpilastele veelgi lihtsam!

    1.    hexborg DIJO

      LOL !! Kahju, et hilinesin, aga hea meel, et see kasulik on. 🙂

  11.   LeoToro DIJO

    Lõpuks !!!, super hea postitus .... Lõpuks leidsin midagi, mis selgitab selgelt regulaaravaldisi ...

    1.    hexborg DIJO

      Seal on palju teavet, kuid keerulisem on leida midagi, millest oleks lihtne aru saada. Mul on hea meel, et täitsin selle tühimiku. 🙂

      Tervitused.

  12.   Shakespeare Rhodes DIJO

    Hei, ma vajan abi, ma pean otsima kataloogis / var / logs vormingus: yymmdd ja logid tulevad nagu 130901.log -130901.log, pean otsima kõik need, mis on vahemikus 1. september kuni 11. oktoober , Ainus asi, mis mul õnnestus oli, oli kogu september eemaldada, kuid ma ei tea, kuidas kogu ahelat teha:

    nt: 1309 [0-3] tagastab palgid ajavahemikus 1. kuni 30. september, kuid ma ei tea, kuidas seda saada ka samasse ahelasse 1. – 11. oktoobrini.

    1.    hexborg DIJO

      Regulaaravaldiste abil on seda veidi keeruline teha. Mulle tundub, et midagi sellist võib toimida:

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

      See on laiendatud regulaarne avaldis. Te ei ütle, millist tööriista kasutate, nii et ma ei saa teile rohkem üksikasju anda.

      Igatahes arvan, et see on regulaaravaldiste asemel parem, kui seda teha otsingu abil. Võite proovida midagi sellist:

      leidma. -newermt '01 sep '-a! -uus "11 okt" -trükk

      Õnne. Loodan, et see võib teid aidata.

  13.   kiip DIJO

    Tere! Kõigepealt tahtsin teid tänada teie töö eest, kuna see leht kuulub minu parimate Linuxi saitide top 3 hulka.
    Tegelesin harjutamisega ja ma ei teadnud, miks telefoninumbril olev RegExp minu jaoks ei tööta ja see oli see, et mul puudus "-E" (millest sain aru tänu sellele postitusele).
    Tahtsin teilt küsida, kas te ei tea head PDF-i või saiti, kus on RegExp-il harjutusi, kuigi vähese fantaasiaga saate neid ise leiutada.

    Tervitused, Pablo.

  14.   Rahulik DIJO

    Väga hea, ma lihtsalt lugesin seda kõike ja jah, nüüd vajan aspiriini 🙂

  15.   Óscar DIJO

    Parim selgitus regulaaravaldiste kohta. Tänan autorit selle teose jagamise eest.

    Tervitus.

  16.   Aleksader DIJO

    Mulle meeldis väga väga hea selgitus