Использование регулярных выражений

C#:
Использование регулярных выражений

Как использовать:

Давайте посмотрим на сопоставление, замену и разделение строк с использованием regex в C#.

Сопоставление номера телефона:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string pattern = @"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b";
        string text = "Call me on 123-456-7890 or 987.654.3210.";
        MatchCollection matches = Regex.Matches(text, pattern);

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

Вывод:

123-456-7890
987.654.3210

Замена переводов строк:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string text = "Первая строка.\nВторая строка.\nТретья строка.";
        string pattern = @"\n";
        string replacement = " ";

        string result = Regex.Replace(text, pattern, replacement);
        Console.WriteLine(result);
    }
}

Вывод:

Первая строка. Вторая строка. Третья строка.

Разделение CSV:

using System;
using System.Text.RegularExpressions;

public class Example
{
    public static void Main()
    {
        string text = "один,два,три,четыре";
        string pattern = @",";

        string[] substrings = Regex.Split(text, pattern);
        foreach (string match in substrings)
        {
            Console.WriteLine(match);
        }
    }
}

Вывод:

один
два
три
четыре

Погружение

Регулярные выражения существуют с 1950-х годов, благодаря математику Стивену Клини. Альтернативы regex включают строковые методы, такие как Contains, IndexOf, StartsWith и т.д., но они менее мощные для сложных шаблонов.

Говоря о реализации, класс Regex в C# находится в System.Text.RegularExpressions. Он использует алгоритмы обратного отслеживания для сопоставления шаблонов. Операции regex могут быть затратными; используйте с осторожностью, чтобы избежать потери производительности.

Смотрите также