RegExp för nybörjare
Förord
Snabb introduktion till RegExp. Artikeln riktar sig mot nybörjare och intresserade.Innehåll
Relaterade artiklar
Ett utav användningsområdena för Regexp är validering av input - t.ex för att se om en sträng motsvarar ett mönster som programmeraren angett.
Rätt smart att göra snabba manuella valideringar med regexp, t.ex lösenord, login, etc.
Så slipper man göra en massa kontroller exempelvis: om lösenord.length är mindre än X, om det innehåller apostrof, det får inte vara längre än Y tecken, etc etc.
Man kan lätt använda System.Text.RegularExpressions.Regex.IsMatch(TheString, ThePattern). Man behöver inte instantiera klassen eftersom det är en shared function i .net. Nedan har jag gjort det för enkelhetens skull.
Exempel:
Några patterns nedan, och förklaringar.
[\wåäö]{6,24}
\w betyder vilken bokstav somhelst mellan a-z, 1-9. åäö står för just förekomsten av någon av dessa bokstäver.
{6,24} betyder att det som står innan måste förekomma mellan 6 till 24 gånger. [ ] Klamrarna grupperar uttrycket eller mönster som finns inuti dem.
^[1-9][0-9]{3}-[0-9][0-9]-[0-9][0-9]|[0-9][0-9]{3}
Ett mönster för att skriva in datum baserat på xxxx-xx-xx. Men att strängen måste då börja med mellan 1-9. Efter det måste 0-9 förekomma 3 ggr. Sen måste ett minustecken förekomma, och sedan fortsätter mönstret enligt reglerna.
(^.+\\)(.*\.[gG][iI][fF]$|.*\.[jJ][pP][eE]?[gG]$|.*\.[bB][mM][pP]$)
För att validera det man vill ladda upp från en inputbox, som måste vara en bild av typen gif/jpg/bmp.
(mönstret kollar också så att adressen till filen är korrekt)
Sen finns det tonvis med mer kombinationer, regler, undantag etc, som man kan beskriva i långa patterns (mönster).
Länkar:
______________________
Med Vänliga Hälsningar
Rickard Robin
Rätt smart att göra snabba manuella valideringar med regexp, t.ex lösenord, login, etc.
Så slipper man göra en massa kontroller exempelvis: om lösenord.length är mindre än X, om det innehåller apostrof, det får inte vara längre än Y tecken, etc etc.
Man kan lätt använda System.Text.RegularExpressions.Regex.IsMatch(TheString, ThePattern). Man behöver inte instantiera klassen eftersom det är en shared function i .net. Nedan har jag gjort det för enkelhetens skull.
Exempel:
Dim lsLogin As String = Me.txtNewUser_Firstname.Text
Dim lsPattern As String = "[\wåäö]{6,24}"
Dim loX As System.Text.RegularExpressions.Regex
If Not loX.IsMatch(lsLogin, lsPattern) Then
Me.lblMess.Text = "Fel: Login får endast innehålla bokstäver, siffror, och minst vara 6 tecken långt och högst 24."
Else
Response.Write("OK!")
End If
Några patterns nedan, och förklaringar.
[\wåäö]{6,24}
\w betyder vilken bokstav somhelst mellan a-z, 1-9. åäö står för just förekomsten av någon av dessa bokstäver.
{6,24} betyder att det som står innan måste förekomma mellan 6 till 24 gånger. [ ] Klamrarna grupperar uttrycket eller mönster som finns inuti dem.
^[1-9][0-9]{3}-[0-9][0-9]-[0-9][0-9]|[0-9][0-9]{3}
Ett mönster för att skriva in datum baserat på xxxx-xx-xx. Men att strängen måste då börja med mellan 1-9. Efter det måste 0-9 förekomma 3 ggr. Sen måste ett minustecken förekomma, och sedan fortsätter mönstret enligt reglerna.
(^.+\\)(.*\.[gG][iI][fF]$|.*\.[jJ][pP][eE]?[gG]$|.*\.[bB][mM][pP]$)
För att validera det man vill ladda upp från en inputbox, som måste vara en bild av typen gif/jpg/bmp.
(mönstret kollar också så att adressen till filen är korrekt)
Sen finns det tonvis med mer kombinationer, regler, undantag etc, som man kan beskriva i långa patterns (mönster).
Länkar:
______________________
Med Vänliga Hälsningar
Rickard Robin
0 Kommentarer