Korzystanie z wyrażeń regularnych

C#:
Korzystanie z wyrażeń regularnych

Jak to zrobić:

Proste dopasowywanie wzorców

Aby sprawdzić, czy ciąg zawiera określony wzorzec, można użyć metody Regex.IsMatch z przestrzeni nazw System.Text.RegularExpressions.

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string sampleText = "Hello, World!";
        string pattern = "World";
        bool containsPattern = Regex.IsMatch(sampleText, pattern);

        Console.WriteLine(containsPattern);  // Wyjście: True
    }
}

Ekstrakcja danych

Wyodrębnianie danych z ciągu przy użyciu grup w wyrażeniu regularnym może być wykonane za pomocą metody Regex.Match.

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string sampleText = "Data: 2023-04-12";
        string pattern = @"Data: (\d{4})-(\d{2})-(\d{2})";
        Match match = Regex.Match(sampleText, pattern);

        if (match.Success)
        {
            Console.WriteLine($"Rok: {match.Groups[1].Value}");  // Wyjście: Rok: 2023
            Console.WriteLine($"Miesiąc: {match.Groups[2].Value}");  // Wyjście: Miesiąc: 04
            Console.WriteLine($"Dzień: {match.Groups[3].Value}");  // Wyjście: Dzień: 12
        }
    }
}

Zastępowanie tekstu

Metoda Regex.Replace pozwala na zastąpienie tekstu w ciągu, który odpowiada określonemu wzorcowi.

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string sampleText = "Odwiedź Microsoft!";
        string pattern = "Microsoft";
        string replacement = "Google";

        string result = Regex.Replace(sampleText, pattern, replacement);

        Console.WriteLine(result);  // Wyjście: Odwiedź Google!
    }
}

Dzielenie ciągów

Można podzielić ciąg na tablicę na podstawie wzorca wyrażenia regularnego przy użyciu metody Regex.Split.

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string sampleText = "jeden,dwa,trzy,cztery,pięć";
        string pattern = ",";

        string[] result = Regex.Split(sampleText, pattern);

        foreach (string item in result)
        {
            Console.WriteLine(item);
        }
        // Wyjście: 
        // jeden
        // dwa
        // trzy
        // cztery
        // pięć
    }
}

Korzystanie z bibliotek innych firm

Chociaż .NET Framework oferuje obszerną obsługę wyrażeń regularnych, istnieją również biblioteki innych firm, takie jak PCRE.NET, które oferują wyrażenia regularne zgodne z Perl (PCRE) w C#. Może to być przydatne, jeśli potrzebujesz funkcji lub składni z silnika wyrażeń regularnych Perla, które nie są dostępne w implementacji .NET.

Aby użyć PCRE.NET, najpierw zainstalujesz jej pakiet NuGet, a następnie możesz jej używać w sposób podobny do używania natywnych klas regex .NET.

// Przykład z użyciem PCRE.NET tutaj
// Uwaga: Wyobraź sobie przykład podobny do tych powyżej, dostosowany do pokazania funkcji unikalnej dla PCRE.NET.

Przy integracji bibliotek innych firm dla wyrażeń regularnych zawsze konsultuj ich dokumentację w celu uzyskania szczegółowych informacji o użyciu i kompatybilności.