Regular expressions
Skrevet af d. 5/12-2017 10:07

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

EksempelBeskrivelse
^[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

KarakterBeskrivelse
^ 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

KarakterBeskrivelse
{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

KarakterBeskrivelse
\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

KarakterBeskrivelse
(?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 "+?".
LinkBeskrivelse
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.
(0 stemmer)
Denne artikel var til hjælp
Denne artikel var ikke til hjælp

Kommentarer (0)
Opret kommentar
 
 
Navn:
Email:
Kommentarer:
CAPTCHA Verificering 
 
Indtast teksten du ser på billedet i feltet herunder (CAPTCHA). Dette er påkrævet for at undgå automatiske registreringer og form afsendelser.

Referencer |  Om Azero |  Betingelser |  Job |  Presse |  Kontakt Azero

Azero A/S - CVR 28 10 17 59 - Skjørringvej 8 - 8464 Galten - Telefon 38 19 50 17
Danske Bank - Reg 4180 - Konto 0010092027 - SWIFT DABADKKK - IBAN DK7230000010092027

Copyright © 2000-2020. Azero A/S respekterer alle varemærker.
Priser er angivet eksklusive moms i DKK, der tages forbehold for trykfejl. Alt salg sker i henhold til vores betingelser.
1. Domaincheck - 2. Search - 3. NScheck - 4. NSlookup - 5. Lookup - 6. TraceRoute - 7. Query - 8. CheckWeb - (9. Flere)