C#:
Slette tegn som matcher et mønster
Hvordan:
La oss se hvordan dette kan gjøres i C#. Her er et lite script som bruker Regex-klassen til å slette alle tall i en tekststreng.
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "Hei Norge! Det er 17. mai, 2021.";
string pattern = @"\d+"; // Matcher alle tallsekvenser
string output = Regex.Replace(input, pattern, "");
Console.WriteLine(output); // Skriver ut: "Hei Norge! Det er . mai, ."
}
}Og et eksempel som fjerner tegn som ikke er bokstaver eller mellomrom:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
string input = "C# er gøy! :)";
string pattern = @"[^a-zA-Z\s]+"; // Matcher alt som ikke er bokstaver eller mellomrom
string output = Regex.Replace(input, pattern, "");
Console.WriteLine(output); // Skriver ut: "C# er gøy "
}
}Deep Dive
Regex, eller regulære uttrykk, har vært brukt i mange år for tekstmanipulering; de er kraftige og fleksible. I C# finnes de i System.Text.RegularExpressions-navneområdet.
Alternativer til Regex kan være string-metoder som Replace, Remove eller IndexOf. Disse er enklere og raskere, men mindre fleksible.
For implementasjoner er det verdt å merke seg at Regex kan være tregt ved store mengder data eller komplekse mønstre. Kompilering av Regex (ved å bruke RegexOptions.Compiled) kan forbedre ytelsen i slike tilfeller.
Se Også
- Microsofts dokumentasjon om Regex i .NET
- Regex101: for å teste regulære uttrykk online
- “Mastering Regular Expressions” av Jeffrey Friedl - En bok om dypere forståelse av regulære uttrykk.
- Stack Overflow: Tips for å forbedre Regex-ytelse i C#