Als u met tekst werkt, zult u begrijpen hoe nuttig reguliere expressies zijn. Reguliere expressies zijn overal in Linux voor het doorzoeken van tekst tot aan het personage. Dit artikel is bedoeld om een ​​klein 'spiekbriefje' te bieden aan mensen die van tijd tot tijd gewoon een beetje opfriscursus nodig hebben.

Als je een inleiding tot reguliere expressies nodig hebt, bekijk dan hier onze beginnersgids.

KarakterBeschrijvingVoorbeeld
. (punt)Overeenkomen met een willekeurig teken, behalve newline (\ n)ct overeen met "kat", "knippen" of "wiegje".
* (ster)Herhaal de vorige expressie 0 of meer keer (hebzuchtige modus)12*3 overeenkomsten "13", "123", "1223", "12223". Het kan samen met gebruikt worden. (punt), zoals m.*easier overeenkomt met "maketecheasier". Het gebruik van .* op zichzelf zinloos, omdat het overeenkomt met alles en het volledige resultaat oplevert.
+ (plus)Herhaal de vorige uitdrukking 1 of meerdere keren.12+3 overeenkomsten "123", "1223", "12223"
? (vraagteken)Maakt het vorige item optioneel.ma?ke overeen met "make", "mke"
^ (caret)Pas aan het begin van de reeks^he overeen met "hallo", "hel", "help", "hij is een jongen"
$ (dollar)Match vanaf het einde van de stringed$ overeen met "gehandeld", bed ", " hebzucht "
(...) (ronde beugel)Groeperen van tekens of expressie(ak) overeen met "make", "take", '
{n} (accolade, waarbij n een geheel getal groter dan 0 is)Vergelijk het vorige item exact n keer12{3}5 overeenkomsten "12225"
[...] (vierkant haakje)overeenkomen met een enkel teken in de haak[abc] overeen met "a", "b" of "c" in de string "abc".
[^ ...]Overeenkomen met elk teken, behalve degene die zijn gedefinieerd in de haaka[^b]c overeen met "aec", "acc", "adc", maar niet "abc"
| (pijp)Zoek naar de uitdrukking links of rechts van de pijp.col(o|ou)r overeen met "kleur", "kleur"
- (hypen)Geef een reeks overeenkomende tekens op. Meest gebruikt in [az], [AZ], [1-9], [a-zA-Z1-9]a[az]c overeen met "abc", "acc", "adc"
\ (backslash)Ontsnap aan een speciaal personage en verander het in een gewoon personage.a\*c overeen met "a * c".
\ n, \ r, \ tovereenkomen met respectievelijk een nieuwe regel, een return- en een tab-teken
\ B ... \ bOvereenkomen met een woord binnen de grens.\bTech\b overeen met het woord "Tech" in "Make Tech Easier".

Enkele meer complexe voorbeelden

Een bepaald aantal karakters matchen .

Hier is een voorbeeld voor een Amerikaans telefoonnummer, afgezien van het netnummer:

 [0-9] {3} - [0-9] {4} 

Dit komt overeen met elk telefoonnummer met het formaat "111-1111".

Een patroon optioneel maken

Hier is het Amerikaanse telefoonnummer opnieuw, dit keer met optionele netnummers. We gaan ervan uit dat het bestand met de telefoonnummers waarnaar we op zoek zijn, telefoonnummers heeft die als volgt zijn gestructureerd: 555-555-5555. De operator "?" Geeft een optioneel patroon aan dat eraan voorafgaat.

 ([0-9] {3} -)? [0-9] {3} - [0-9] {4} 

Natuurlijk, het is een beetje lelijk, zoals reguliere expressies vaak hebben, maar het is erg krachtig.

Een reeks tekens vinden :

 . {1, 3} 

Dit komt overeen met elk karakter tussen 1 en 3 keer.

Download Cheat Sheet reguliere expressies

Kan hier geen genoeg van krijgen? We hebben een downloadbare spiekbrief voor u klaargemaakt zodat u er toegang toe hebt wanneer u het nodig heeft.

Download het hier.