Grundläggande reguljära uttryck

Vanligtvis behöver man reguljära uttryck för att söka i data. Det kan exempelvis användas för att validera att en viss sträng ser ut att vara en e-postadress, eller för att leta upp alla telefonnummer i en textmängd.

Jag tänkte här gå igenom det mest grundläggande för att skapa reguljära uttryck.

Specialtecken

Tecken Beskrivning Exempel Matchar
\ Escapetecken 192\.168\.1\. 192.168.1.1
192.168.1.123
192.168.1.abc
Ovanstående exempel använder escapetecknet \ för att specialtecknet . (punkt) skall tolkas som en punkt. Punkt är normalt ett tecken som representerar ett tecken, vilket som helst
| Eller svart|grönt natten är svart
gräset är grönt
Här använder vi tecknet | som står för antingen eller. Detta är bra att använda om man vill matcha flera olika ord eller tecken i ett mönster.
() Grupper default\.(aspx|html) default.aspx
default.html
Paranteser används för att gruppera. I ovanstående mönster grupperar vi en liten del och använder eller-operatorn för att få lite flexibilitet i mönstret.

Ankare

Tecken Beskrivning Exempel Matchar Matchar inte
^ Matchar början ^björn björn
björnbär
isbjörn
Ovanstående talar om att texten som skall matchas måste börja med björn.
$ Matchar slut björn$ björn
isbjörn
björnbär
Ovanstående talar om att texten som skall matchas måste sluta på björn.

Joker

Tecken Beskrivning Exempel Matchar
. Matchar ett tecken r.d röd
rad
råd
En punkt representerar ett tecken, vilket som helst (även mellanslag).

Kvantifierare

Tecken Beskrivning Exempel Matchar
* Matchar föregående tecken
x antal gånger
mv*c mvc
mv
mvvvvvc
Stjärna matchar föregående tecken
0 eller obegränsat antal gånger.
? Matchar föregående tecken
noll eller en gång
r?d mvc
mv
Ovanstående matchar ett tecken vilket som helst en gång eller noll gånger.
+ Matchar ett tecken en gång eller fler mv+c mvc
mvvvvvc
Plustecknet matchar ett tecken vilket som helst minst en gång eller fler.

Alla ovanstående kan kombineras.

Reguljärt uttryck Matchar
default\.aspx\?q=(mvc|prestanda)+ default.aspx?q=mvc
default.aspx?q=prestanda
default.aspx?q=mvcprestanda
default.aspx?q=mvcmvc
Notera att jag i exemplet ovan använder paranteser för att gruppera och sedan använder plustecknet för att kräva att den gruppen finns med en eller fler gånger.
default\.aspx\?q=(mvc)*$ default.aspx?q=
default.aspx?q=mvc
default.aspx?q=mvcmvc
Här får mvc förekomma noll eller hur många gånger som helst.

Om du vill läsa vidare om reguljära uttryck så läs gärna mitt inlägg om avancerade reguljära uttryck.

2 kommentarer

  1. Niklas said

    Det har var riktigt bra för en nybörjare inom reguljära uttryck. Toppen!!

  2. […] Detta är egentligen inte mer avancerade reguljära uttryck än det jag skrev om i inlägget om grunläggande reguljära uttryck. Däremot kanske dessa inte används lika ofta. Det som däremot gör att rubriken fungerar är att […]

RSS feed for comments on this post

Kommentarer inaktiverade.

%d bloggare gillar detta: