Hi Gandalf,
Her er en liste over alle de regler du kan sætte op i en regular expression.
Regelsæt
*******
"" : en string
[] : et karaktersæt. "[123abc]" næste karakter skal være 1 eller 2 eller 3...osv.
? : antal 1 eller 0 "[123]?"
?=: kig fremad for eksistens "windows (?=95|98|nt|2000)"
?: : "kvind(?:e|er)" istedet for "kvinde|kvinder"
?!: kig fremad for ikke eksistens "windows (?!95|98|nt|2000)"
* : antal >= 0 "[123]*"
+ : antal > 0 "[123]+"
{n} : n antal er krævet. "[123]{5}"
{n,m} : minimum n, maximum m "[123]{3,5}"
. : alt pånær newline ".*" finder alt som ikke er newline
^ : ikke indholdt, bliver også brugt til at fortælle skal være i starten af strengen/linien. ikke = "[^123]" starten = "^123"
$ : skal være i slutningen af strengen, hvis multiline er sat til er det slutningen af linien. "123$"
\ : specialle karakter. (se nedenfor)
() : indre regular expression. "([123]*|[abc]*)"
| : eller "window|dos"
Specialle karakter
*************
\d : tal [0-9]
\D : ingen tal [^0-9]
\f : form-feed (0x0c)
\n : new-line (0x0a)
\r : carriage return (0x0d)
\s : whitespace [ \f\n\r\t\v]
\S : ingen whitespace [^ \f\n\r\t\v]
\t : tab (0x09)
\v : vertical tab (0x0b)
\w : ord (bogstaver + tal + underscore) [a-zA-Z0-9_]
\W : ingen ord [^a-zA-Z0-9_]
\xn : hex \x04
*************************************
Her er så en function som kan bruges til at replace alle de steder din regular expression bliver fundet, med en ny string.
<%
Function RegExpReplace(strInput, strPattern, strReplace)
Dim regex, match, matches, Position, strReturn
Position = 1
strReturn = ""
Set regex = New RegExp
regex.Pattern = strPattern
regex.IgnoreCase = True
regex.Global = True
Set matches = regex.Execute(strInput)
For Each match In matches
strReturn = strReturn & Mid(strInput, Position, match.FirstIndex + 1 - Position)
strReturn = strReturn & Replace(strReplace, strPattern, match.Value)
Position = Len(match.Value) + match.FirstIndex + 1
Next
strReturn = strReturn & Mid(strInput, Position, Len(strInput))
RegExpReplace = strReturn
End Function
%>
<%= RegExpReplace("123 en test 234 endnu en test","[\d]+","<b>dette var et tal</b>") %>
Dette lille eksempel vil fjerne alle tal og lave om til string "<b>dette var et tal</b>".
Håber dette hjælper dig lidt på vej
Smilly