Regular Expressions
Regular expressions er en avanceret måde at søge og/eller erstatte tekstkombinationer på,
det kan bruges både på vores Windows- og Unixservere.
Angives der ikke et wildcard efter et bogstav eller en klasse, så forventes det at man ønsker
nøjagtig en karakter.
Test
Test Regular Expressions.
Eksempler
| Eksempel |
Beskrivelse |
| ^[CK]asper$ |
Tjekker at udelukkende har skrevet navnet Kasper, stavet med C eller K som begyndelsesbogstav. |
| (Kasper|Jesper|Anders) |
Finder et af navnene, Kasper, Jesper eller Anders. |
| \basp\b |
Matcher alle forekomster af ordet
asp. Eksemplet vil altså matche med asp kan man,
men ikke brug aspi driveren idet det skal være et ord. |
Eksempel i ASP
<%
Function RegTest(strString, strRegPattern)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = strRegPattern
RegTest = regEx.Test(strString)
Set regEx = Nothing
End Function
If RegTest(Request.Form("password"),"!,@#%$^&*()+=") Then
Response.Write "Password cannot contain odd characters"
End If
%>
Klasser
| Karakter |
Beskrivelse |
| ^ |
Linie position: begyndelsen af en linie |
| $ |
Linie position: slutningen af en linie |
| [] |
Enhver karakter indenfor rammerne |
| [^] |
Matcher enhver karakter der ikke er i klassen |
| . |
Matcher alle karakterer, undtagen linjeskift |
| [x-y0-9] |
Række(r): enhver karakter indenfor den specificerede række |
| \x |
Escape: brug af metakarakteren x, hvis du skal bruge karakterer der har speciel betydning f.eks. . ? + * ( ) [ ] {} $ ^ | / \ og - i klasser. |
| \xNN |
Escapekarakter angivet i hexadecimal kode (NN) fra ASCII-tabellen, for eksempel
angiver \xF8 karakteren ø. |
| \<xyz |
Ord position: begyndelsen af et ord |
| xyz\> |
Ord position: slutningen af et ord |
| () |
Gruppering (backreferencing, AND), alt i gruppen samles i en
sand/falsk expression. Herudover kan \n bruges til at søge inde i gruppen (sub select) og
ved søg og erstat, kan man referere til en gruppe med $1, $2, $n i erstatningsteksten (bemærk at visse programmer bruger \1, \2, \n i stedet for $n til er erstatte med). |
| | |
Enten eller (OR), bruges indeni en ( xxx ) gruppering/backreference |
Wildcards
| Karakter |
Beskrivelse |
| {n} |
Nøjagtig en forekomst af den forrige karakter eller klasse |
| {n,} |
Mindst n forekomst(er) af den forrige karakter eller klasse |
| {n,m} |
Mindst n og maksimum m forekomster af den forrige karakter eller klasse |
| ? |
Nul eller en forekomst af den forrige karakter eller klasse, samme som {0,1} |
| * |
Nul eller flere forekomster af den forrige karakter eller klasse, samme som {0,} |
| + |
En eller flere forekomster af den forrige karakter eller klasse, samme som {1,} |
| x? |
Et ? efter en af ovenstående wildcards, for eksempel *?, slår grådighed fra,
så Regular Expressions returnerer så få karakterer som muligt, fremfor så mange som muligt. |
Metakarakterer
| Karakter |
Beskrivelse |
| \b |
Kanten af et ord, altså første eller sidste karakter i et ord |
| \B |
Det modsatte af \b |
| \d |
Et ciffer [0-9] |
| \D |
Alt andet end et ciffer [^0-9] |
| \f |
En sideskift karakter (form-feed) |
| \n |
En ny-linie karakter (new-line) |
| \r |
En linie-start karakter (carriage return) |
| \s |
En ord-separator (mellemrum, tabulator, etc.) [ \f\n\r\t\v] |
| \S |
Alt andet end en ord-separator [^ \f\n\r\t\v] |
| \t |
en tabulator |
| \v |
en vertikal tabulator |
| \w |
Enhver ord karakter inklusiv understreg (bogstaver+cifre+understreg) [a-zA-Z0-9_] |
| \W |
Modsat af \w, alle andre karakterer |
Inline modifikatorer
| Karakter |
Beskrivelse |
| (?i) |
Ignorer store/små bogstaver (case insensitive). |
| (?-i) |
Tjek store/små bogstaver (case sensitive). |
| (?g) |
Brug grådig/greedy indstillinger |
| (?-g) |
Slå grådige indstillinger fra, så "+" betyder det samme som "+?". |