Med Terminal: Bruk vanlige uttrykk

En av de tingene jeg alltid har elsket med Linux-terminalen er hva du kan oppnå ved å bruke vanlige uttrykk. Enten vi trenger å finne komplisert tekst eller erstatte den med noe annet, kan bruk av regulære uttrykk i stor grad forenkle jobben. La oss starte med begynnelsen:

ADVARSEL: Dette innlegget er vondt i rumpa. Å lese dette innlegget hele tiden kan føre til tap av bevissthet. Ta pauser i mellom, eller kontakt legen din eller apoteket før du leser hele innlegget.

Hva er et vanlig uttrykk?

Et vanlig uttrykk er en serie spesialtegn som lar oss beskrive en tekst som vi ønsker å finne. Hvis vi for eksempel ønsket å søke etter ordet "linux", ville det være nok å sette ordet i programmet vi bruker. Selve ordet er et vanlig uttrykk. Så langt virker det veldig enkelt, men hva om vi vil finne alle tallene i en bestemt fil? Eller alle linjene som begynner med store bokstaver? I slike tilfeller kan du ikke lenger sette et enkelt ord. Løsningen er å bruke et vanlig uttrykk.

Vanlige uttrykk kontra filmønstre.

Før vi kommer inn på temaet regulære uttrykk, vil jeg fjerne en vanlig misforståelse om regulære uttrykk. Et vanlig uttrykk er ikke det vi legger som parameter i kommandoer som rm, cp, etc. for å referere til forskjellige filer på harddisken. Det ville være et filmønster. Regulære uttrykk, selv om de ligner på at de bruker noen vanlige tegn, er forskjellige. Et filmønster avfyres mot filene på harddisken og returnerer de som stemmer overens med mønsteret, mens et vanlig uttrykk avfyres mot en tekst og returnerer linjene som inneholder den søkte teksten. For eksempel det regulære uttrykket som tilsvarer mønsteret *.* det ville være noe sånt ^.*\..*$

Typer vanlige uttrykk.

Ikke alle programmer bruker de samme regulære uttrykkene. Ikke mye mindre. Det finnes flere typer mer eller mindre standard regulære uttrykk, men det er programmer som endrer syntaksen litt, inkluderer egne utvidelser, eller til og med bruker helt andre tegn. Derfor, når du vil bruke regulære uttrykk med et program som du ikke kjenner godt, er det første du må gjøre å se i manualen eller dokumentasjonen til programmet for å se hvordan regulære uttrykk den kjenner igjen.

For det første er det to hovedtyper av regulære uttrykk, som er inneholdt i POSIX-standarden, som er det Linux-verktøy bruker. De er grunnleggende og utvidede regulære uttrykk. Mange av kommandoene som fungerer med vanlige uttrykk, for eksempel grep eller sed, lar deg bruke disse to typene. Jeg vil snakke om dem nedenfor. Det er også PERL-stil regulære uttrykk, og så er det programmer som vim eller emacs som bruker varianter av disse. Avhengig av hva vi vil gjøre, kan det være mer hensiktsmessig å bruke det ene eller det andre.

Testing av regulære uttrykk.

Syntaksen til regulære uttrykk er ikke triviell i det hele tatt. Når vi må skrive et komplisert regulært uttrykk, vil vi stå foran en streng med spesielle tegn som er umulig å forstå ved første øyekast, så for å lære å bruke dem er det viktig å ha en måte å gjøre alle testene vi ønsker og ser resultatene enkelt. Det er derfor jeg nå skal legge flere kommandoer som vi kan gjøre testene med og eksperimentere alt vi trenger til vi har de regulære uttrykkene dominert.

Den første er grep-kommandoen. Dette er kommandoen vi bruker ofte for å gjøre søk. Syntaksen er som følger:

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

Jeg anbefaler alltid å sette vanlige uttrykk i enkelt anførselstegn, slik at skallet ikke kommer opp til det. Den første måten er å finne et vanlig uttrykk i en fil. Den andre lar filtrering av utdata fra en kommando gjennom et vanlig uttrykk. Som standard bruker grep grunnleggende regulære uttrykk. Alternativet -E er for bruk av utvidede regulære uttrykk.

Et triks som kan hjelpe oss med å se hvordan vanlige uttrykk fungerer, er for å muliggjøre bruk av farger i grep-kommandoen. På den måten blir den delen av teksten som samsvarer med det vanlige uttrykket vi bruker, uthevet. For å aktivere fargen i grep-kommandoen, må du bare sørge for at miljøvariabelen GREP_OPTIONS inneholde i verdi --color, som kan gjøres med denne kommandoen:

GREP_OPTIONS=--color

Vi kan sette den i .bashrc for alltid å ha den aktivert.

En annen måte å bruke vanlige uttrykk på er å bruke kommandoen sed. Dette er mer egnet for å erstatte tekst, men kan også brukes til å søke. Syntaksen for det ville være slik:

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

Sed-kommandoen bruker også grunnleggende regulære uttrykk som standard, du kan bruke utvidede regulære uttrykk med alternativet -r.

En annen kommando som jeg også vil nevne er vanskelig. Denne kommandoen kan brukes til mange ting, da den lar deg skrive skript på ditt eget programmeringsspråk. Hvis det vi ønsker er å finne et regulært uttrykk i en fil eller i utdataene til en kommando, vil måten å bruke det være på følgende måte:

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

Denne kommandoen bruker alltid utvidede regulære uttrykk.

For å gjøre testene våre trenger vi også en tekst som vil tjene som et eksempel for å søke i den. Vi kan bruke følgende 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.

Dette er teksten jeg vil bruke til eksemplene på resten av innlegget, så jeg anbefaler at du kopierer den i en fil for å ha den hendig fra terminalen. Du kan sette navnet du vil ha. Jeg har kalt det regex.

Begynneleksjon.

Nå har vi alt du trenger for å begynne å teste vanlige uttrykk. La oss gå litt etter litt. Jeg kommer til å sette flere eksempler på søk med regulære uttrykk der jeg vil forklare hva hver karakter er for. De er ikke veldig gode eksempler, men siden jeg skal ha et veldig langt innlegg, vil jeg ikke komplisere det mer. Og jeg skal bare skrape overflaten av hva som kan gjøres med vanlige uttrykk.

Det enkleste av alt er å søke etter et bestemt ord, for eksempel anta at vi vil søke etter alle linjene som inneholder ordet "Linux". Dette er det enkleste, siden vi bare trenger å skrive:

grep 'Linux' regex

Og vi kan se resultatet:

ArchLinux: https://wiki.archlinux.org/ Arch Linux: 11-03-2002 Fra Linux Rulez.

Dette er de tre linjene som inneholder ordet "Linux" som, hvis vi har brukt fargetrikset, vil fremstå som uthevet. Merk at den gjenkjenner ordet vi leter etter, selv om det er en del av et lengre ord som i "ArchLinux". Det fremhever imidlertid ikke ordet "linux" som vises i URL-en "https://wiki.archlinux.org/". Det er fordi det vises der med små bokstaver "l", og vi har sett etter det med store bokstaver. Grep-kommandoen har muligheter for dette, men jeg skal ikke snakke om dem i en artikkel om vanlige uttrykk.

Med denne enkle testen kan vi trekke den første konklusjonen:

  • En normal karakter satt i et vanlig uttrykk samsvarer med seg selv.

Som vil si at hvis du setter bokstaven "a", vil den se etter bokstaven "a". Det virker logisk, ikke sant? 🙂

Anta at vi vil søke etter ordet "CentO" etterfulgt av et hvilket som helst tegn, men bare et enkelt tegn. For dette kan vi bruke "." -Tegnet, som er et jokertegn som samsvarer med hvilket som helst tegn, men bare ett:

grep 'CentO.' regex

Og resultatet er:

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

Noe som betyr at den inkluderer "S" i "CentOS", selv om det i ett tilfelle er store og små bokstaver. Hvis noen annen karakter dukket opp der, ville den også inkludere den. Vi har allerede den andre regelen:

  • Karakteren "." samsvarer med hvilken som helst karakter.

Det er ikke lenger så trivielt som det virket, men med dette kan vi ikke gjøre mye. La oss gå litt lenger. La oss anta at vi vil finne linjene der 2002 og 2004 vises. De virker som to søk, men de kan gjøres på en gang slik:

grep '200[24]' regex

Hvilket betyr at vi vil finne tallet 200 etterfulgt av 2 eller 4. Og resultatet er dette:

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

Som bringer oss til den tredje regelen:

  • Flere tegn i parentes samsvarer med alle tegnene i parentes.

Brakettene gir mer spill. de kan også brukes til å ekskludere tegn. Anta for eksempel at vi vil søke etter nettsteder der tegnet ":" vises, men ikke blir fulgt av "/". Kommandoen vil være slik:

grep ':[^/]' regex

Det handler rett og slett om å sette et "^" som første tegn i parentes. Du kan sette alle tegnene du vil ha nedenfor. Resultatet av denne siste kommandoen er følgende:

Arch Linux: 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 Ubuntu: 20/10/2004

Nå er ":" bak distro-navnene uthevet, men ikke de i URL-ene fordi URL-ene har "/" etter seg.

  • Å sette tegnet "^" i begynnelsen av en parentes samsvarer med alle tegn unntatt de andre tegnene i parentes.

En annen ting vi kan gjøre er å spesifisere en rekke tegn. Hvis du for eksempel vil søke etter et hvilket som helst nummer etterfulgt av et "-", vil det se slik ut:

grep '[0-9]-' regex

Med dette spesifiserer vi et tegn mellom 0 og 9 og deretter et minustegn. La oss se resultatet:

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

Flere områder kan spesifiseres innenfor parentesene for å jevne blandingsområder med enkelt tegn.

  • Å plassere to tegn atskilt med "-" i parentesene samsvarer med alle tegn innenfor området.

La oss se om vi kan velge den første delen av URL-ene. Den som sier "http" eller "https". De er bare forskjellige i de siste "s", så la oss gjøre det som følger:

grep -E 'https?' regex

Spørsmålstegnet brukes til å gjøre tegnet til venstre valgfritt. Men nå har vi lagt til -E-alternativet til kommandoen. Dette er fordi avhør er et trekk ved utvidede regulære uttrykk. Så langt brukte vi grunnleggende regulære uttrykk, så vi trengte ikke legge noe inn. La oss se resultatet:

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/

Så vi har allerede en ny regel:

  • Et tegn etterfulgt av "?" samsvarer med den karakteren eller ingen. Dette gjelder bare for utvidede regulære uttrykk.

Nå skal vi se etter to helt forskjellige ord. La oss se hvordan vi finner linjene som inneholder både ordet "Debian" og "Ubuntu".

grep -E 'Debian|Ubuntu' regex

Med den vertikale linjen kan vi skille to eller flere forskjellige regulære uttrykk og se etter linjene som samsvarer med noen av dem:

Debian: https://wiki.debian.org/
Ubuntu: https://wiki.ubuntu.com/
Debian: 16 / 08 / 1993
Ubuntu: 20 / 10 / 2004
  • Tegnet "|" Den brukes til å skille flere regulære uttrykk og matche med noen av dem. Det er også spesifikt for utvidede regulære uttrykk.

La oss fortsette. Nå skal vi lete etter ordet "Linux", men bare der det ikke sitter fast til et annet ord til venstre. Vi kan gjøre det slik:

grep '\

Her er den viktige karakteren "<", men den må unngås ved å sette "\" foran den slik at grep tolker den som et spesialtegn. Resultatet er som følger:

Arch Linux: 11-03-2002 Fra Linux Rulez.

Du kan også bruke "\>" for å søke etter ord som ikke er rett ved siden av hverandre. La oss gå med et eksempel. La oss prøve denne kommandoen:

grep 'http\>' regex

Produksjonen den produserer er denne:

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

"Http" kom ut, men ikke "https", fordi i "https" er det fremdeles et tegn til høyre for "p" som kan være en del av et ord.

  • Tegnene "<" og ">" samsvarer med henholdsvis begynnelsen og slutten av et ord. Disse tegnene må slippes unna slik at de ikke tolkes som bokstavelige tegn.

Vi går med ting litt mer kompliserte. "+" -Tegnet samsvarer med tegnet til venstre, gjentatt minst en gang. Denne karakteren er bare tilgjengelig med utvidede regulære uttrykk. Med den kan vi for eksempel søke i sekvenser med flere tall på rad som starter med ":".

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

resultat:

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

Tallet 38 er også uthevet fordi det også begynner med ":".

  • "+" -Tegnet samsvarer med tegnet til venstre, gjentatt minst en gang.

Du kan også kontrollere antall repetisjoner ved å bruke "{" og "}". Tanken er å sette i parentes et tall som indikerer nøyaktig antall repetisjoner vi ønsker. Du kan også sette en rekkevidde. La oss se eksempler på de to tilfellene.

Først skal vi finne alle de firesifrede sekvensene som finnes:

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

Merk at de krøllete bukseselene må slippes unna hvis vi bruker grunnleggende regulære uttrykk, men ikke hvis vi bruker utvidede. Med utvidet ville det være slik:

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

Og resultatet i begge tilfeller ville være dette:

Arch Linux: 11-03-2002
Gentoo: 31/03 /2002
CentOS: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 20/10 /2004
  • Tegnene "{" og "} med et tall mellom dem samsvarer med forrige tegn gjentatt det angitte antall ganger.

Nå det andre eksemplet med seler. Anta at vi vil finne ord som har mellom 3 og 6 små bokstaver. Vi kan gjøre følgende:

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

Og resultatet ville være dette:

- L.Ista de sides wiki: TILRCHLinux: https:/ /wiki.Arch Linux.org/ Gderetter: https:/ /wiki.gentoo.org/wiki/Main_Palder
CentOS: http:/ /wiki.CentOS.org/ Debian: https:/ /wiki.debian.org/ ELLERopprør: https:/ /wiki.ubuntu.com/ - Fdu savner de Lanseringen: TILRCH Linux: 11-03-2002 Gderetter: 31 CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993 Uopprør: 20 DDet er Linux Rulez.

Som, som du ser, ikke ligner mye på det vi ønsket. Det er fordi det vanlige uttrykket finner bokstavene med andre ord som er lengre. La oss prøve denne andre versjonen:

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

resultat:

- Liste over sider 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/

Dette ser allerede mer ut som det vi ønsket oss. Det vi har gjort er å kreve at ordet starter like før første bokstav og slutter like etter den siste.

  • Tegnene "{" og "}" med to tall mellom seg atskilt med komma samsvarer med forrige tegn og gjentok antall ganger som er angitt av de to tallene.

La oss nå se på et tegn som er en prime av "+". Det er "*" og operasjonen er veldig lik bare at den samsvarer med et hvilket som helst antall tegn inkludert null. Det vil si at den gjør det samme som "+", men krever ikke at tegnet til venstre vises i teksten. La oss for eksempel prøve å lete etter de adressene som starter på wiki og slutter på org:

grep 'wiki.*org' regex

La oss se resultatet:

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å den siste karakteren som vi skal se. "\" -Tegnet brukes til å unnslippe tegnet til høyre, slik at det mister sin spesielle betydning. For eksempel: Anta at vi vil finne linjene som ender på et punkt. Det første som kan forekomme oss kan være dette:

grep '.$' regex

Resultatet er ikke det vi leter etter:

- Liste over wiki-sider:
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/
- Utgivelsesdatoer: Arch Linux: 11-03-2002
Gentoo: 312
CentOs: 14-05-2004 03:32:38
Debian: 16/08/1993
Ubuntu: 204
Desde Linux Rulez.

Dette er fordi "." samsvarer med hva som helst, slik at regulært uttrykk samsvarer med det siste tegnet i hver linje uansett hva det er. Løsningen er denne:

grep '\.$' regex

Nå er resultatet det vi ønsker:

Desde Linux Rulez.

Spillet er slutt

Selv om emnet med vanlige uttrykk er så komplekst at jeg vil gi for en serie artikler, tror jeg at jeg allerede har gitt deg nok smerte. Hvis du har klart å komme, gratulerer. Og hvis du har lest alt dette på en gang, ta en aspirin eller noe, for det kan ikke være bra.

For nå er det alt. Hvis du liker denne artikkelen, kan du kanskje skrive en annen. I mellomtiden anbefaler jeg deg å prøve alle regulære uttrykk i terminalen for å se tydelig hvordan de fungerer. Og husk: Bare Chuck Norris kan analysere HTML ved å bruke vanlige uttrykk.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   Esekiel sa

    Hva ville livet vårt vært uten regex?
    Artikkelen er veldig nyttig, men jeg vil lese den litt etter litt. Takk så mye.

    1.    hexborg sa

      Takk for kommentaren. Jeg tror fortsatt ikke at artikkelen min har kommet ut. 🙂 Det har kommet ut med noen feil, men jeg håper det er nyttig. 🙂

  2.   Scalibur sa

    Takk youssssssss! ..

    For en tid siden måtte jeg studere litt om vanlige uttrykk .. ..Jeg takker for undervisningen .. og trinnvis guide for å lære hver enkelt av dem ..

    Veldig bra! .. .. Jeg skal få den aspirinen .. ee

    1.    hexborg sa

      Værsågod. Mot og at vanlige uttrykk ikke kan være med deg. 🙂

  3.   tanrax sa

    Fantastisk innlegg! Flott jobb. Jeg lurer på hvor mange timer det tok deg 😀

    1.    hexborg sa

      LOL !! Spørsmålet er: Hvor mange timer ville det tatt meg hvis jeg hadde sagt alt jeg hadde tenkt å si? Uendelig !! 🙂

  4.   Tammuz sa

    en ting jeg ikke visste, god artikkel!

    1.    hexborg sa

      Takk skal du ha. Det er en glede å dele det med deg.

  5.   Helena_ryuu sa

    flott forklaring. gratulerer! veldig nyttig!

    1.    hexborg sa

      Jeg er glad du syntes det var nyttig. Så det er en glede å skrive.

  6.   anti sa

    Dette bør gå et spesielt sted. Som Featured, men har en veldig spesifikk nytte. Ganske nyttig, selv om jeg ønsker å se at den blir brukt på Vim.

    1.    hexborg sa

      Det er et spørsmål om å spørre meg selv. Jeg har noen flere artikler om vanlige uttrykk i tankene. Og jeg kunne snakke om vim i dem. Det har noen forskjeller fra det jeg har forklart i denne artikkelen. Det handler om å fortsette med det. 🙂

  7.   Fernando sa

    Flink!

    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!

    Hvis det er noen trøst, er min MYE MER PUSSY 😀

    Absolutt regex er en av de mest nyttige tingene. Jeg bruker dem vanligvis til å trimme utdataene fra kommandoene og beholde den delen som interesserer meg, og deretter kommunisere med den i et bash-skript, for eksempel. Jeg har også brukt dem mye på universitetet, og de er av avgjørende betydning i konstruksjonen av kompilatorer (i definisjonen av leksikografi og parsers). Kort sagt en hel verden.

    Hilsen og veldig veldig bra arbeid.

    1.    hexborg sa

      Tusen takk.

      Jeg likte også artikkelen din. Det er mer kortfattet enn mitt. Det kan tjene som en rask referanse. Det er en tilfeldighet at vi har skrevet dem samtidig. Du kan se at folk er interessert i faget. 🙂

  8.   Elery sa

    Vanlige uttrykk for dummies =), nå er det mer tydelig for meg, forresten, en måte å ha utdata med farge for grep, er ved å lage et alias i .bashrc alias grep = 'grep –color = alltid', i tilfelle det fungerer for noen.

    Hilsen

    1.    hexborg sa

      Ekte. Det er en annen måte å gjøre det på. Takk for innspillet. 🙂

  9.   KZKG ^ Gaara sa

    O_O ... bidrag! O_O ...
    Tusen takk for innlegget, jeg ventet på noe sånt en gang lol, jeg lar det være åpent å lese det rolig hjemme uten å måtte konsentrere seg lol.

    Takk for artikkelen, det gjør jeg virkelig 😀

    1.    hexborg sa

      Jeg visste at du ville like det. LOL !! Sannheten er at mange ting mangler, men jeg har allerede en andre del i tankene. 🙂

  10.   Eliecer Tates sa

    Flott artikkel, hvis bare jeg hadde lest den i går, hadde timen jeg ga i dag vært enda enklere for elevene mine!

    1.    hexborg sa

      LOL !! Synd at jeg kom for sent, men glad for at det er nyttig. 🙂

  11.   LeoToro sa

    Endelig !!!, innlegget er supergodt ... endelig fant jeg noe som tydelig forklarer vanlige uttrykk ... ..

    1.    hexborg sa

      Det er mye informasjon der ute, men det er vanskeligere å finne noe som er lett å forstå. Jeg er glad jeg fylte det gapet. 🙂

      Hilsener.

  12.   Shakespeare Rhodes sa

    Hei, jeg trenger hjelp, jeg må gjøre et søk i / var / logger med formatet: yymmdd, og loggene kommer slik 130901.log -130901.log, jeg må søke i alle som er mellom 1. september og 11. oktober , Det eneste jeg klarte å gjøre var å fjerne hele september, men jeg vet ikke hvordan jeg skal gjøre hele kjeden:

    ex: 1309 [0-3] returnerer loggene fra 1. september til 30. september, men jeg vet ikke hvordan jeg også skal komme i samme kjede fra 1. til 11. oktober.

    1.    hexborg sa

      Å gjøre det ved å bruke vanlige uttrykk er litt komplisert. Det forekommer meg at noe slikt kan fungere:

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

      Det er et utvidet regulært uttrykk. Du sier ikke hvilket verktøy du bruker, så jeg kan ikke gi deg flere detaljer.

      Uansett, jeg tror dette er tilfelle i stedet for å bruke vanlige uttrykk, er det bedre å gjøre det med finne. Du kan prøve noe slikt:

      finne. -newermt '01 sep '-a! -newermt '11 okt '-avtrykk

      Flaks. Håper dette kan hjelpe deg.

  13.   chipo sa

    Hei! Først og fremst ønsket jeg å takke deg for arbeidet ditt siden denne siden er blant mine "topp 3" av de beste Linux-nettstedene.
    Jeg trente og visste ikke hvorfor et RegExp på et telefonnummer ikke fungerte for meg, og det var at jeg manglet "-E" (som jeg skjønte takket være dette innlegget).
    Jeg ønsket å spørre deg om du ikke kjenner en god pdf eller et nettsted der det er øvelser på RegExp, men med litt fantasi kan du øve deg på å finne på dem selv.

    Hilsen, Pablo.

  14.   Rolig sa

    Veldig bra, jeg har bare lest det hele, og ja nå trenger jeg en aspirin 🙂

  15.   Oscar sa

    Den beste forklaringen jeg har sett på vanlige uttrykk. Min takk til forfatteren for å dele dette arbeidet.

    En hilsen.

  16.   alexander sa

    Jeg likte en veldig god forklaring