Jesper Tverskov, 14. juli, 2009

Kursus i Regular Expressions

Alle programmeringssprog, "Søg- og Erstat"-dialogbokse, osv., understøtter en eller anden flavor af Regular Expressions. I XML er Regular Expressions defineret i standarden for datatyper i XML Schema. XSLT 2.0, XPath 2.0 og XQuery 1.0 understøtter alle XML Schema's REGEX flavor, der er meget lig REGEX i Perl, Java og .NET.

1. Genopfriskning

Selv om Regular Expressions burde være en fast bestanddel af de fleste programmørers værktøjskasse, har det overrasket mig, at mange kursisters REGEX-færdigheder stort set er gået i glemmebogen. På et grundkursus i XML Schema eller XSLT/XPath/XQuery er der aldrig tid til at genopfriske disse kundskaber, kun til at giver exsempler på hvordan REGEX kan anvendes i XML.

Regular Expressions i XML Schema er et subset af REGEX i Perl, Java og .NET, men følger du linket ovenfør, bliver du hurtigt overbevist om, at XML Schema's REGEX flavor normalt vil være mere end rigeligt.

2. REGEX i XML Schema

Når vi i XML Schema laver bruger-definerede datatyper, kan vi med xsd:pattern og Regular Expressions lave et mønster eller en maske, der nøje fastsætter, hvad vi accepterer som data.

3. REGEX i XSLT

I XSLT 2.0 har vi 3 nye elementer og 2 nye funktioner, der gør brug af eller som anvendes i forbindelse med Regular Expressions.

XSLT elementer

XSLT funktioner

Vi bruger unparsed-string() til at loade text-filer på samme måde som vi loader XML-filer med document(). Det betyder, at vi med XSLT 2.0 og Regular Expressions kan transformere ikke bare XML men et hvilket som helst text-format.

4. REGEX i XPath/XQuery

I XPath 2.0 har vi yderligere 3 nye funktioner, der gør brug af Regular Expressions. Da XQuery er et superset af XPath, indgår XPath's funktioner også i XQuery.

XPath/XQuery funktioner

5. Kursus/modul

Et grundkursus i Regular Expressions er ideelt til én kursus dag, hvis vi skal hele vejen rundt med et passende antal øvelser. Jeg tilbyder også Regular Expressions som et kompakt 1/4 dags eller 1/2 dags modul, der f.eks. kan indgå i kursusforløb i XML Schema og XSLT over flere dage.

Updated: 2009-07-15