Поиск и замена текста

C#:
Поиск и замена текста

Как:

C# делает манипуляции с текстом довольно простыми. Ниже, обратите внимание на метод string.Replace для замены слов.

using System;

public class Program
{
    public static void Main()
    {
        string phrase = "Привет, Мир!";
        string updatedPhrase = phrase.Replace("Мир", "C#");
        
        Console.WriteLine(updatedPhrase); // Вывод: Привет, C#!
    }
}

Не ракетостроение, верно? Но что, если мы хотим игнорировать регистр или заменять только целые слова? Регулярные выражения на помощь:

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        string phrase = "Яблоки растут на деревьях. яблочные пироги вкусные.";
        string pattern = "\\bяблоко\\b"; // \b это граница слова в регулярных выражениях
        string replacement = "Апельсин";
        
        string updatedPhrase = Regex.Replace(phrase, pattern, replacement, RegexOptions.IgnoreCase);

        Console.WriteLine(updatedPhrase); // Вывод: Апельсины растут на деревьях. Апельсиновые пироги вкусные.
    }
}

Глубокое Погружение

В прошлые времена манипулирование строками было сложным. У нас был только C, что означало работу с массивами символов и ручные итерации. C# подарил нам удобную работу со строками.

Если string.Replace или Regex.Replace не решают задачу, у нас есть варианты. Для больших текстов или сложных паттернов стоит подумать о написании собственного парсера или использовании библиотек, например, Antlr.

Регулярные выражения мощные для поиска паттернов, но могут быть медленными. Если производительность критична и вы увлекаетесь мелкими деталями, измеряйте и сравнивайте с StringBuilder для массовых, итеративных замен.

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

  • Документация Microsoft по string.Replace
  • Класс Regex в .NET для более сложных паттернов
  • Ознакомьтесь с Antlr для сложного парсинга: The ANTLR Mega Tutorial