RegExp – som programmerare måste du kunna dessa tecken(Javascript)

februari 28, 2012 § Lämna en kommentar

Jag vill ta upp det nödvändiga kommandon som man måste kunna när man jobbar med RegExp. Kommentera och lägg till om det är något ni efterlyser.

I alla förklaringar skulle jag vilja skriva t.ex ”står för alla siffror”. Men det skulle bli så plottrigt. Jag hoppas ni kan läsa av detta istället 🙂

() – Används för att gruppera uttryck. Det skapar också en ”backreference” som gör att det som matchar uttrycket inom parenteser fångas där och kan användas senare.
\d – Alla siffror
\ – Används för att ”escapa” ett tecken. T.ex \\s betyder bara \s.
/skriv din regexp här/ – Framåt-slashes används för att definera hela regexp. Här ser vi 2 exempel på hur vi kan skriva RegExp: re = /\w+/ eller re = new RegExp(”\\w+”)
[0-9] – Samma sak som \d
\s – Radbrytning, white-space eller en tab. Det är samma sak som [ \t\r\n]
\t – White space
\r – Tab
\n – Radbrytning
^ – Används för att deklarera att det som kommer efter ^ ska vara först. Om ^ är inom square brackets så betyder det att tecknet/uttrycket efter ^ ska ”tas bort”.
$ – Används i slutet av en regex för att tala om att nu är det slut på uttrycket
. – Matchar alla tecken
? – Repeterar
* – Repeterar
{} – Används för att definiera hur många gånger det ska upprepa sig: {min, max}. Om vi skriver {1,} så är minimum definierat men inte maximum. Därför är den ändlös.
+ – Repeterar (exempel: regex [0-9]+ matcher 837 likaså 222.
[] – Om man anger flera RegExp uttryck inom square brackets så accepterar en söknad (i en text t.ex) en av dessa uttryck.

Exempel

1

Om man är kluven i sin engelska och vill acceptera både ”gray” och ”grey” så kan man göra det enkelt med regexp uttrycket gr[ae]y. Som accepterar både a och e.

2

\s\d matchar whitespace tecken följt av en siffra. [\s\d] matchar bara en bokstav/siffra. När båda används på 1 + 2 = 3 kommer \s\d matcha ”whitespace”+2. När [\s\d] används så kommer den bara att matcha 1 (utan whitespace före).

3

För att ta ett annat exempel så matcher ”.*” precis alla tecken som är inom citattecken. Men om vi t.ex i en text skulle skriva 2 citerade ord på varsitt håll så skulle all text där emellan tas med också. Eftersom uttrycket säger att den ska ta med allt (även citattecken) i sitt uttryck.

För att klargöra: I den här ”meningen” så skulle allt understryket vara ”medtaget”.
För att undvika detta så använder vi oss utav: ”[^”\r\n]*”
Som med andra ord betyder: Vi vill ha allt inom citat utom ett till citat, tab eller radbrytning emellan.

4

var regex = RegExp(”(^|\\s)” + vadsomhelst + ”(\\s|$)”);
För att förstå den här regexpen så måste vi få en överblick. Den första parentesen utgör tillsammans med den sista helheten i uttrycket. Första parentesen berättar att detta tecken är inom parenteser. ^|\\s – betyder att antingen börjar meningen eller också så är det en tabb, radbrytning eller whitespace där. Sedan avslutas parentesen och grupperingen med ”). + vadsomhelst + ”vadsomhelst” är inget att bry sig om. Den texten kan bytas ut och användas i en function. Slutet på regexpen är nästan likadan som den inledande bara det att |$ betyder att det kan vara slut här.

Var befinner jag mig?

Du tittar för närvarande i arkivet för februari, 2012Tobiasboman's Blog.

%d bloggare gillar detta: