Kas ir Linux regulārās izteiksmes?
Linux regulārās izteiksmes ir īpašas rakstzīmes, kas palīdz meklēt datus un saskaņot sarežģītus modeļus. Regulārās izteiksmes tiek saīsinātas kā “regexp” vai “regex”. Tie tiek izmantoti daudzās Linux programmās, piemēram, grep, bash, pārdēvēt, sed utt.
Regulāro izteicienu veidi
Lai būtu vieglāk saprast, ļaujiet mums pa vienam apgūt dažādus Regex veidus.
- Regulārās izteiksmes
- Intervāls Regulāras izteiksmes
- Paplašinātas regulārās izteiksmes
- Kopsavilkums
Noklikšķiniet šeit, ja videoklips nav pieejams
Regulārās izteiksmes
Dažas no parastajām izteiksmēm parasti izmantotajām komandām ir tr, sed, vi un grep. Turpmāk uzskaitīti daži no pamata Regex.
Simbols | Apraksti |
---|---|
. | aizstāj jebkuru rakstzīmi |
atbilst virknes sākumam | |
$ | sakrīt ar virknes beigām |
* | sakrīt ar nulles vai vairāk reižu iepriekšējo rakstzīmi |
\ | Pārstāviet īpašās rakstzīmes |
() | Grupē regulāras izteiksmes |
? | Saskaņo tieši ar vienu rakstzīmi |
Apskatīsim piemēru.
Izpildiet kaķa paraugu, lai redzētu esoša faila saturu
Meklējiet saturu, kas satur burtu “a”.
' ^ ' sakrīt ar virknes sākumu. Meklēsim saturu, kas Sākas ar a
Tiek filtrētas tikai tās līnijas, kas sākas ar rakstzīmi. Līnijas, kuru sākumā nav rakstzīmes “a”, tiek ignorētas.
Apskatīsim citu piemēru -
Izmantojot $, atlasiet tikai tās rindas, kas beidzas ar t
Intervāls Regulāras izteiksmes
Šie izteicieni norāda mums par virknes rakstzīmju parādīšanās skaitu. Viņi ir
Izteiksme | Apraksts |
---|---|
{n} |
Precīzi atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes |
{n, m} | Atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes, bet ne vairāk kā m |
{n,} | Saskaņo iepriekšējo rakstzīmi tikai tad, kad tā parādās 'n' vai vairāk reizes |
Piemērs:
Filtrējiet visas rindas, kurās ir raksturs “p”
Mēs vēlamies pārbaudīt, vai rakstzīme “p” virknē parādās tieši 2 reizes viena pēc otras. Šajā gadījumā sintakse būtu šāda:
cat sample | grep -E p\{2}
Piezīme. Jums jāpievieno -E ar šīm regulārajām izteiksmēm.
Paplašinātas regulārās izteiksmes
Šīs regulārās izteiksmes satur vairāk nekā vienas izteiksmes kombinācijas. Daži no tiem ir:
Izteiksme | Apraksts |
---|---|
\ + |
Atbilst vienam vai vairākiem iepriekšējā rakstzīmes gadījumiem |
\? |
Sakrīt ar nulli vai vienu iepriekšējās rakstzīmes gadījumu |
Piemērs:
Visu rakstzīmju meklēšana 't'
Pieņemsim, ka mēs vēlamies filtrēt līnijas, kurās rakstzīme a ir pirms rakstzīmes t
Mēs varam izmantot komandu, piemēram,
cat sample|grep "a\+t"
Lencīšu paplašināšana
Bikšturu paplašināšanas sintakse ir vai nu secība, vai ar komatiem atdalīts vienumu saraksts cirtainajās lencēs "{}". Sākuma un beigu vienumi secībā tiek atdalīti ar diviem punktiem "...".
Daži piemēri:
Iepriekš minētajos piemēros komanda atbalss izveido virknes, izmantojot lencīšu paplašināšanu.
Kopsavilkums:
- Regulārās izteiksmes ir rakstzīmju kopums, ko izmanto, lai pārbaudītu virkņu modeļus
- Tos sauc arī par “regexp” un “regex”
- Ir svarīgi iemācīties regulāras izteiksmes skriptu rakstīšanai
- Daži regulārie pamata izteicieni ir:
Simbols | Apraksti |
---|---|
. | aizstāj jebkuru rakstzīmi |
atbilst virknes sākumam | |
$ | sakrīt ar virknes beigām |
- Daži paplašinātie regulārie izteicieni ir:
Izteiksme | Apraksts |
---|---|
\ + | Atbilst vienam vai vairākiem iepriekšējā rakstzīmes gadījumiem |
\? | Sakrīt ar nulli vai vienu iepriekšējās rakstzīmes gadījumu |
- Daži regulāru izteiksmju intervāli ir:
Izteiksme | Apraksts |
---|---|
{n} | Precīzi atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes |
{n, m} | Atbilst iepriekšējai rakstzīmei, kas parādās 'n' reizes, bet ne vairāk kā m |
{n,} | Saskaņo iepriekšējo rakstzīmi tikai tad, kad tā parādās 'n' vai vairāk reizes |
- Bikšturu paplašināšana tiek izmantota virkņu ģenerēšanai. Tas palīdz izveidot vairākas virknes no vienas.