Sin descripción

V.Yakimova 03f17dca81 chinese panda hace 8 meses
.idea dd78004f9b baobab hace 8 meses
gitignore.txt b1eb6d37ef что это hace 10 meses
readme.md 03f17dca81 chinese panda hace 8 meses

readme.md

Конспект лекции "Регулярные выражения"

Регулярки в C

string s = "Бык тупогуб, тупогубенький бычок, у быка губа бела была тупа";
Regex regex = new Regex(@"туп(\w*)");
MatchCollection matches = regex.Matches(s);
if (matches.Count > 0)
{
    foreach (Match match in matches)
        Console.WriteLine(match.Value);
}
else
{
    Console.WriteLine("Совпадений не найдено");
}
тупогуб
тупогубенький
тупа         

Поиск с группами

string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";

Regex r = new Regex(pat, RegexOptions.IgnoreCase);

Match m = r.Match(text);
int matchCount = 0;
// можно искать не одно вхождение, а несколько
while (m.Success)
{
    Console.WriteLine("Match"+ (++matchCount));
    // тут можно было бы перебирать по длине массива Groups, 
    // но мы по своему шаблону и так знаем, что у нас две подгруппы
    for (int i = 1; i <= 2; i++)
    {
    Console.WriteLine($"Group {i}='{m.Groups[i]}'");
    }
    // поиск следующей подстроки соответсвующей шаблону
    m = m.NextMatch();
}
Match1
Group 1='One'
Group 2='car'
Match2       
Group 1='red'
Group 2='car'
Match3       
Group 1='blue'
Group 2='car'

Параметр RegexOptions

示例1

string s = "Бык тупогуб, тупогубенький бычок, у быка губа бела была тупа";
Regex regex = new Regex(@"\w*губ\w*");
Process finished with exit code 0.

例子2

string s = "456-435-2318";
Regex regex = new Regex(
    @"\d{3}-\d{3}-\d{4}");
Process finished with exit code 0.

Проверка на соответствие строки формату

string pattern = @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
                @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$";
while (true)
{
    Console.WriteLine("Введите адрес электронной почты");
    string email = Console.ReadLine();
 
    if (Regex.IsMatch(email, pattern, RegexOptions.IgnoreCase))
    {
        Console.WriteLine("Email подтвержден");
        break;
    }
    else
    {
        Console.WriteLine("Некорректный email");
    }
}
Введите адрес электронной почты
dkljfsljkf@gmail.com
Email подтвержден

Замена и метод Replace

string s = "Мама  мыла  раму. ";
string pattern = @"\s+";
string target = " ";
Regex regex = new Regex(pattern);
string result = regex.Replace(s, target);
Process finished with exit code 0.