Mis on Linuxi regulaaravaldised?
Linuxi regulaaravaldised on erimärgid, mis aitavad andmeid otsida ja keerukaid mustreid sobitada. Regulaaravaldisi lühendatakse kui "regexp" või "regex". Neid kasutatakse paljudes Linuxi programmides nagu grep, bash, ümbernimetamine, sed jne.
Regulaaravaldiste tüübid
Mõistmise hõlbustamiseks õppige Regexi erinevad tüübid ükshaaval.
- Põhilised regulaaravaldised
- Intervall Regulaarsed väljendid
- Laiendatud regulaaravaldised
- Kokkuvõte
Kui videole pole juurdepääsu, klõpsake siin
Põhilised regulaaravaldised
Mõned tavaliste avaldistega tavaliselt kasutatavad käsud on tr, sed, vi ja grep. Allpool on loetletud mõned põhilised Regex.
Sümbol | Kirjeldused |
---|---|
. | asendab mis tahes märki |
vastab stringi algusele | |
$ | vastab stringi lõpule |
* | sobitub eelmise tähemärgiga nullist või rohkem |
\ | Esitage erimärke |
() | Grupeerib regulaaravaldisi |
? | Sobitab täpselt ühe märgi |
Vaatame näite.
Olemasoleva faili sisu nägemiseks käivitage kassi proov
Otsige a-tähega sisu.
' ^ ' vastab stringi algusele. Otsime sisu, mis ALGAB tähega
Filtreeritakse ainult read, mis algavad tähemärgiga. Ridu, mille alguses ei ole tähte „a”, eiratakse.
Vaatame veel ühte näidet -
Valige $ abil ainult need read, mis lõpevad tähega t
Intervall Regulaarsed väljendid
Need väljendid räägivad meile stringi märgi esinemiste arvust. Nemad on
Väljendus | Kirjeldus |
---|---|
{n} |
Sobib täpselt eelmise tähemärgiga, mis kuvatakse n-korda |
{n, m} | Sobib eelmise tähemärgiga, mis ilmub 'n' korda, kuid mitte rohkem kui m |
{n,} | Sobib eelneva tähemärgiga ainult siis, kui see ilmub n-korda või rohkem |
Näide:
Filtreerige välja kõik read, mis sisaldavad märki 'p'
Tahame kontrollida, kas märk „p” ilmub stringis täpselt 2 korda üksteise järel. Selle jaoks oleks süntaks järgmine:
cat sample | grep -E p\{2}
Märkus. Nende regulaaravaldistega peate lisama -E.
Laiendatud regulaaravaldised
Need regulaaravaldised sisaldavad rohkem kui ühe avaldise kombinatsioone. Mõned neist on:
Väljendus | Kirjeldus |
---|---|
\ + |
Sobib ühe või mitme eelmise märgi esinemisega |
\? |
Sobib nulli või ühe eelmise märgi esinemisega |
Näide:
Kõigi tähemärkide 't' otsimine
Oletame, et tahame välja filtreerida read, kus märk „a” eelneb märgile „t”
Me võime kasutada käsku like
cat sample|grep "a\+t"
Trakside laiendamine
Breketite laiendamise süntaks on kas jadaga või komadega eraldatud üksuste loend lokkis sulgudes "{}". Järjestuse algus- ja lõppüksused on eraldatud kahe punktiga "…".
Mõned näited:
Ülaltoodud näidetes loob kaja käsk stringide laiendamise abil stringid.
Kokkuvõte:
- Regulaaravaldised on märkide komplekt, mida kasutatakse stringide mustrite kontrollimiseks
- Neid nimetatakse ka "regexp" ja "regex"
- Skriptide kirjutamiseks on oluline õppida regulaaravaldisi
- Mõned regulaarsed põhiväljendid on:
Sümbol | Kirjeldused |
---|---|
. | asendab mis tahes märki |
vastab stringi algusele | |
$ | vastab stringi lõpule |
- Mõned laiendatud regulaaravaldised on:
Väljendus | Kirjeldus |
---|---|
\ + | Sobib ühe või mitme eelmise märgi esinemisega |
\? | Sobib nulli või ühe eelmise märgi esinemisega |
- Mõni intervalliga regulaaravaldis on:
Väljendus | Kirjeldus |
---|---|
{n} | Sobib täpselt eelmise tähemärgiga, mis kuvatakse n-korda |
{n, m} | Sobib eelmise tähemärgiga, mis ilmub 'n' korda, kuid mitte rohkem kui m |
{n,} | Sobib eelneva tähemärgiga ainult siis, kui see ilmub n-korda või rohkem |
- Trakside laiendamist kasutatakse stringide genereerimiseks. See aitab luua mitu stringi ühest.