Reguliere expressies gebruiken

C#:
Reguliere expressies gebruiken

Hoe te:

Laten we kijken naar het matchen, vervangen en splitsen van strings met regex in C#.

Een telefoonnummer matchen:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string patroon = @"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b";
        string tekst = "Bel me op 123-456-7890 of 987.654.3210.";
        MatchCollection matches = Regex.Matches(tekst, patroon);

        foreach (Match match in matches)
           Console.WriteLine(match.Value);
    }
}

Uitvoer:

123-456-7890
987.654.3210

Nieuwe regels vervangen:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string tekst = "Eerste regel.\nTweede regel.\nDerde regel.";
        string patroon = @"\n";
        string vervanging = " ";

        string resultaat = Regex.Replace(tekst, patroon, vervanging);
        Console.WriteLine(resultaat);
    }
}

Uitvoer:

Eerste regel. Tweede regel. Derde regel.

Een CSV splitsen:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string tekst = "een,twee,drie,vier";
        string patroon = @",";

        string[] deelStrings = Regex.Split(tekst, patroon);
        foreach (string match in deelStrings)
        {
            Console.WriteLine(match);
        }
    }
}

Uitvoer:

een
twee
drie
vier

Diepgaande duik

Regex bestaat sinds de jaren 50, dankzij wiskundige Stephen Kleene. Alternatieven voor regex omvatten stringmethoden zoals Contains, IndexOf, StartsWith, enz., maar ze zijn minder krachtig voor complexe patronen.

Wat implementatie betreft, de Regex klasse in C# bevindt zich in System.Text.RegularExpressions. Het maakt gebruik van backtracking-algoritmen voor patroonherkenning. Regex-bewerkingen kunnen kostbaar zijn; gebruik ze zorgvuldig om prestatievermindering te voorkomen.

Zie ook