Hva er Linux Regular Expressions?
Linux Regular Expressions er spesialtegn som hjelper med å søke i data og matche komplekse mønstre. Regulære uttrykk forkortes som 'regexp' eller 'regex'. De brukes i mange Linux-programmer som grep, bash, omdøpe, sed, etc.
Typer av regulære uttrykk
For å gjøre det lettere å forstå, la oss lære de forskjellige typene Regex en etter en.
- Grunnleggende regulære uttrykk
- Intervall Vanlige uttrykk
- Utvidede regulære uttrykk
- Sammendrag
Klikk her hvis videoen ikke er tilgjengelig
Grunnleggende regulære uttrykk
Noen av de vanligste kommandoene med regulære uttrykk er tr, sed, vi og grep. Nedenfor er noen av de grunnleggende Regex.
Symbol | Beskrivelser |
---|---|
. | erstatter enhver karakter |
samsvarer med start av streng | |
$ | samsvarer med slutten på strengen |
* | samsvarer med null eller flere ganger forrige tegn |
\ | Representer spesialtegn |
() | Grupper vanlige uttrykk |
? | Matcher nøyaktig ett tegn |
La oss se et eksempel.
Utfør katteprøve for å se innholdet i en eksisterende fil
Søk etter innhold som inneholder bokstaven 'a'.
' ^ ' samsvarer med starten på en streng. La oss søke etter innhold som STARTER med en
Bare linjer som begynner med tegn blir filtrert. Linjer som ikke inneholder tegnet 'a' i starten ignoreres.
La oss se på et annet eksempel -
Velg bare de linjene som slutter med t ved hjelp av $
Intervall Vanlige uttrykk
Disse uttrykkene forteller oss om antall forekomster av et tegn i en streng. De er
Uttrykk | Beskrivelse |
---|---|
{n} |
Matcher det forrige tegnet som vises 'n' ganger nøyaktig |
{n, m} | Matcher forrige tegn som vises 'n' ganger, men ikke mer enn m |
{n,} | Matcher bare forrige tegn når det vises 'n' ganger eller mer |
Eksempel:
Filtrer ut alle linjene som inneholder tegnet 'p'
Vi vil sjekke at tegnet 'p' vises nøyaktig to ganger i en streng etter hverandre. For dette ville syntaksen være:
cat sample | grep -E p\{2}
Merk: Du må legge til -E med disse regulære uttrykkene.
Utvidede regulære uttrykk
Disse regulære uttrykkene inneholder kombinasjoner av mer enn ett uttrykk. Noen av dem er:
Uttrykk | Beskrivelse |
---|---|
\ + |
Matcher en eller flere forekomster av forrige karakter |
\? |
Matcher null eller en forekomst av forrige tegn |
Eksempel:
Søker etter alle tegnene 't'
Anta at vi vil filtrere ut linjer der tegnet 'a' går foran tegnet 't'
Vi kan bruke kommando som
cat sample|grep "a\+t"
Brace utvidelse
Syntaksen for spenneutvidelse er enten en sekvens eller en kommaseparert liste over elementer i krøllete bukseseler "{}". Start- og sluttelementene i en sekvens er atskilt med to perioder "…".
Noen eksempler:
I eksemplene ovenfor oppretter ekkokommandoen strenger ved hjelp av brace-utvidelsen.
Sammendrag:
- Regulære uttrykk er et sett med tegn som brukes til å sjekke mønstre i strenger
- De kalles også 'regexp' og 'regex'
- Det er viktig å lære regelmessige uttrykk for å skrive manus
- Noen grunnleggende regulære uttrykk er:
Symbol | Beskrivelser |
---|---|
. | erstatter enhver karakter |
samsvarer med start av streng | |
$ | samsvarer med slutten på strengen |
- Noen utvidede regulære uttrykk er:
Uttrykk | Beskrivelse |
---|---|
\ + | Matcher en eller flere forekomster av forrige karakter |
\? | Matcher null eller en forekomst av forrige tegn |
- Noen intervallregulære uttrykk er:
Uttrykk | Beskrivelse |
---|---|
{n} | Matcher det forrige tegnet som vises 'n' ganger nøyaktig |
{n, m} | Matcher forrige tegn som vises 'n' ganger, men ikke mer enn m |
{n,} | Matcher bare forrige tegn når det vises 'n' ganger eller mer |
- Brace-utvidelsen brukes til å generere strenger. Det hjelper til med å lage flere strenger av en.