K9104 Regular Expressions – Regulære udtryk

Regular Expressions kan matche tekststrenge. Når det er sagt, kan sproget meget mere. Du kan finde komplekse mønstre og sammenhænge i større tekster med avancerede teknikker…

Regular Expressions – Regulære Udtryk – RegEx

Regular Expressions benyttes i et væld af systemer, platforme og programmeringssprog. F.eks. .Net, Java, XML og mange andre steder.

Kursus i Regular Expressions. Lær regulære udtryk helt ud i hjørnerne

Målgruppe

Kurset henvender sig til udviklere og andre, der ønsker en dybere viden om Regular Expressions. Bestilles kurset som et lukket kursus, og I ønsker at nå helt ud i alle hjørner af Regular Expressions, anbefaler vi, at kurset kører over mindst 2 dage. Men kontakt os, hvis du er i tvivl.

Forudsætninger for kurset

Det kræver ingen specielle forudsætninger at deltage i dette kursus. Da Regular Expressions oftest er en indlejret del af et andet programmeringssprog kan dine forudsætninger være mange. Regular Expressions benyttes i XML, Java, .NET, Javascript og mange andre steder.

Over 99% af alle implementeringer af Regular Expressions (RegEx) er den samme. Der kan være nuanceforskelle mellem forskellige Regular Expression engines (fortolkere), men forskellene er absolut minimale.

Dog findes der andre RegEx-sprog – f.eks. Berkeley – som syntaktisk er bygget helt anderledes op. RegEx-Kurset kan afholdes i en sådan variant – f.eks. Berkeley, men som udgangspunkt afholdes dette kursus i standard Regular Expressions (PRCE), som er den mest benyttede. Instruktøren sørger for før kurset, at vi benytter den for jer rigtige flavor.

Efter kurset kan du

Du får en dyb og bred viden om Regular Expressions. Igennem hands-on øvelser kommer du ud i alle hjørner af Regular Expressions.

Kursusindhold for RegEx kursus

Følgende emner behandles:

Introduktion til Regular Expressions

  • Intro til RegEx
  • Opsætning af ressourcer
  • RegEx Engines – forskellig tolkning af RegEx-kode – flavours og engines. Kort demo af RegEx i C#.net, VBA, Php og PowerShell

Grundlæggende syntaks

  • Almindelig Tekst – literal text
  • Punktum, Asterix, Spørgsmålstegn, Circumfleks
  • Karakterklasser – herunder class subtraction
  • Danske bogstaver
  • Shorthand koder
  • Brug af backslash

Ankre og Ordgrænser

  • Dots og Anchors,  plus \A og \z, Multiline Modifier
  • Simple Quantifiers – herunder Quantifiers Ranges
  • Ordgrænser, Boundaries, fange ord, fange mellemrum
  • Definition af egne tegnadskillelse

Problemet med Quantifiers

  • Eager – RegEx er Eager – hvad betyder det?
  • Alternations, Pipes, Lazy Alternations – og alternativer til disse
  • Quantifiers Avanceret – herunder backtracking
  • Greedy vs. Lazy/Reluctant
  • Possessive Quantifiers og Atomic Groups
  • Catastrofic Backtracking – simpelt regex udtryk på under 20 karakterer, der laver over 1 mio beregninger. Eksempel på hvordan man IKKE skal lave RegEx.

Syntaktiske finurligheder

  • \Q og \E
  • Kommentarer
  • Mode Modifiers – betydning og 3 forskellige syntaksformer
  • Betinglerser. If og If-else

Grupper

  • Grupper, Capturing
  • Backreferencer
  • Brug af parenteser – prioritering
  • Udtrækning af gruppers værdier som array – illustreret med php
  • Grupper med navne
  • Non-Capturing Grupper
  • Branch Reset Grupper

LookArounds

  • Lookarounds – Herunder gentagne Lookarounds på samme indsætningspunkt
  • Analyse af password – skal være mindst 10 karakterer, have 3 uppercases, 1 specialkarakter og 2 tal
  • Unicode Code Point, til specialkarakterer, \u \x \c – specialtegn, genvejstaster etc.

Free-Space Mode

  • Oprettelse af DEFINES på 2 forskellige måder.  (RegEx’s svar på funktioner)

Subrutiner og Recursive kald

  • Subrutiner – genbrug af koder
  • Recursive Subrutiner – recursiv reference til sig selv (enten gruppe+subrutine eller hele udtrykket ?R og ?0)

Debugging, Performance m.m.

  • Debugging
  • Performance
  • XML og Regular Expressions