TypeScript:
Bruke regulære uttrykk

Hvordan:

La oss hoppe inn i TypeScript og se hvordan regex brukes til vanlige oppgaver.

// Definer et regex-mønster for en e-postadresse
const emailPattern = /\S+@\S+\.\S+/;

// Test om en streng samsvarer med e-postmønsteret
const email = "[email protected]";
console.log(emailPattern.test(email)); // Utdata: true

// Finn og erstatt tall i en streng
const replaceDigits = "Vare 25 koster $30".replace(/\d+/g, '#');
console.log(replaceDigits); // Utdata: "Vare # koster $#"

// Trekke ut spesifikke deler fra en streng ved bruk av fangstgrupper
const data = "April 10, 2021";
const datePattern = /(\w+) (\d+), (\d+)/;
const [, month, day, year] = datePattern.exec(data) || [];
console.log(month, day, year); // Utdata: "April" "10" "2021"

Dypdykk

Tilbake på 1950-tallet beskrev matematikeren Stephen Kleene regulære uttrykk som en modell for å representere regulære språk, noe som senere ble essensielt i datavitenskap. Hurtig fremover, regex er allestedsnærværende i programmering for å håndtere tekst.

Selv om regex er en sveitserkniv for strengoperasjoner, er det ikke uten alternativer. Avhengig av kompleksiteten i oppgaven, kan noen ganger strengmetoder som includes(), startsWith(), endsWith(), eller til og med parsing med et bibliotek være bedre. For eksempel, parsing av en kompleks JSON-streng ved hjelp av regex kan være et mareritt—bruk en JSON-parser i stedet.

Når det gjelder implementasjon, er regex i JavaScript og TypeScript basert på ECMAScript-språkspesifikasjonen. Under panseret bruker motorer tilstandsmaskiner for effektivt å matche mønstre. Det er verdt å merke seg at regex-operasjoner kan bli dyre når det gjelder ytelse, spesielt med dårlig skrevne mønstre—vokt dere for “katastrofal backtracking”.

Se Også

  • MDN Web Docs om regulære uttrykk: MDN Regulære Uttrykk
  • Regex101: Et verktøy for å teste og feilsøke regex-mønstre Regex101
  • Boken “Mastering Regular Expressions” for fordypet forståelse: O’Reilly