Hvad er Linux Regular Expressions?
Linux Regular Expressions er specialtegn, der hjælper med at søge data og matche komplekse mønstre. Regulære udtryk forkortes som 'regexp' eller 'regex'. De bruges i mange Linux-programmer som grep, bash, omdøb, sed osv.
Typer af regulære udtryk
For at lette forståelsen, lad os lære de forskellige typer Regex en efter en.
- Grundlæggende regulære udtryk
- Interval Regulære udtryk
- Udvidede regulære udtryk
- Resumé
Klik her, hvis videoen ikke er tilgængelig
Grundlæggende regulære udtryk
Nogle af de almindeligt anvendte kommandoer med regulære udtryk er tr, sed, vi og grep. Nedenfor er nogle af de grundlæggende Regex.
Symbol | Beskrivelser |
---|---|
. | erstatter enhver karakter |
matcher start af streng | |
$ | matcher slutningen af strengen |
* | matcher nul eller flere gange det foregående tegn |
\ | Repræsenter specialtegn |
() | Grupper regelmæssige udtryk |
? | Matcher nøjagtigt et tegn |
Lad os se et eksempel.
Udfør katteprøve for at se indholdet af en eksisterende fil
Søg efter indhold, der indeholder bogstavet 'a'.
' ^ ' matcher starten på en streng. Lad os søge efter indhold, der starter med en
Kun linjer, der starter med tegn, filtreres. Linjer, der ikke indeholder tegnet 'a' i starten, ignoreres.
Lad os se på et andet eksempel -
Vælg kun de linjer, der slutter med t ved hjælp af $
Interval Regulære udtryk
Disse udtryk fortæller os om antallet af forekomster af et tegn i en streng. De er
Udtryk | Beskrivelse |
---|---|
{n} |
Matcher det foregående tegn, der vises 'n' gange nøjagtigt |
{n, m} | Matcher det foregående tegn, der vises 'n' gange, men ikke mere end m |
{n,} | Matcher kun det foregående tegn, når det vises 'n' gange eller mere |
Eksempel:
Filtrer alle linjer, der indeholder tegnet 'p', ud
Vi vil kontrollere, at tegnet 'p' vises nøjagtigt 2 gange i en streng efter hinanden. Til dette ville syntaksen være:
cat sample | grep -E p\{2}
Bemærk: Du skal tilføje -E med disse regulære udtryk.
Udvidede regulære udtryk
Disse regulære udtryk indeholder kombinationer af mere end et udtryk. Nogle af dem er:
Udtryk | Beskrivelse |
---|---|
\ + |
Matcher en eller flere forekomster af det forrige tegn |
\? |
Matcher nul eller en forekomst af det forrige tegn |
Eksempel:
Søger efter alle tegn 't'
Antag, at vi vil filtrere linjer, hvor tegn 'a' går forud for karakter 't'
Vi kan bruge kommando som
cat sample|grep "a\+t"
Brace ekspansion
Syntaksen for udvidelse af afstivning er enten en sekvens eller en komma-adskilt liste over emner inde i krøllede seler "{}". Start- og slutelementerne i en sekvens er adskilt af to perioder "…".
Nogle eksempler:
I ovenstående eksempler opretter ekkokommandoen strenge ved hjælp af bøjleudvidelsen.
Resumé:
- Regulære udtryk er et sæt tegn, der bruges til at kontrollere mønstre i strenge
- De kaldes også 'regexp' og 'regex'
- Det er vigtigt at lære regelmæssige udtryk til at skrive manuskripter
- Nogle grundlæggende regulære udtryk er:
Symbol | Beskrivelser |
---|---|
. | erstatter enhver karakter |
matcher start af streng | |
$ | matcher slutningen af strengen |
- Nogle udvidede regulære udtryk er:
Udtryk | Beskrivelse |
---|---|
\ + | Matcher en eller flere forekomster af det forrige tegn |
\? | Matcher nul eller en forekomst af det forrige tegn |
- Nogle intervalregulære udtryk er:
Udtryk | Beskrivelse |
---|---|
{n} | Matcher det foregående tegn, der vises 'n' gange nøjagtigt |
{n, m} | Matcher det foregående tegn, der vises 'n' gange, men ikke mere end m |
{n,} | Matcher kun det foregående tegn, når det vises 'n' gange eller mere |
- Bøjleudvidelsen bruges til at generere strenge. Det hjælper med at skabe flere strenge ud af en.