Att använda reguljära uttryck

TypeScript:
Att använda reguljära uttryck

Hur man gör:

Låt oss dyka in i TypeScript och se hur regex används för vanliga uppgifter.

// Definiera ett regex-mönster för en e-postadress
const emailPattern = /\S+@\S+\.\S+/;

// Testa om en sträng matchar e-postmönstret
const email = "[email protected]";
console.log(emailPattern.test(email)); // Utdata: true

// Hitta och ersätt siffror i en sträng
const replaceDigits = "Item 25 kostar $30".replace(/\d+/g, '#');
console.log(replaceDigits); // Utdata: "Item # kostar $#"

// Extrahera specifika delar från en sträng med hjälp av fångstgrupper
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"

Fördjupning

Tillbaka på 1950-talet beskrev matematikern Stephen Kleene reguljära uttryck som en modell för att representera reguljära språk, vilket senare blev nödvändigt inom datavetenskap. Fram till idag är regex allestädes närvarande i programmering för hantering av text.

Även om regex är en schweizisk armékniv för strängoperationer, är det inte utan alternativ. Beroende på uppgiftens komplexitet kan ibland strängmetoder som includes(), startsWith(), endsWith(), eller till och med tolkning med ett bibliotek vara bättre. Till exempel, att tolka en komplex JSON-sträng med regex kan vara en mardröm—använd en JSON-tolk istället.

När det gäller implementering är regex i JavaScript och TypeScript baserat på ECMAScript-språkspecifikationen. I bakgrunden använder motorer tillståndsmaskiner för att effektivt matcha mönster. Det är värt att notera att regex-operationer kan bli dyra när det gäller prestanda, särskilt med dåligt skrivna mönster—se upp för “katastrofal backtracking”.

Se även

  • MDN Web Docs om Reguljära Uttryck: MDN Regular Expressions
  • Regex101: Ett verktyg för att testa och felsöka regex-mönster Regex101
  • Boken “Mastering Regular Expressions” för djupgående förståelse: O’Reilly