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
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 "+?". |
Link | Beskrivelse |
---|---|
Microsoft | Developer network. |
Microsoft | Scripting technologies. |
MS regular reference | Regular Expressions referenceliste fra Microsoft. |
Unicode Character Database | Unicode har en Unicode Character Database. |
ReReplace | ReReplace kan teste regular expressions, med farvekodning på backreferences. |