Slette tegn som matcher et mønster

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å