sbakhtina b196d98171 Обновить 'README.md' | vor 8 Monaten | |
---|---|---|
ConsoleApp2 | vor 8 Monaten | |
.gitignore.txt | vor 8 Monaten | |
README.md | vor 8 Monaten |
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'
using System.Text.RegularExpressions;
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");
}
}
Введите адрес электронной почты
sopha_2006@mail.ru
Email подтвержден
Номера автобусов
using System.Text.RegularExpressions;
string Jo = @"^[A-Z]{1}\d{3}[A-Z]{2}$";
Console.WriteLine("Введите номер автобуса; ");
string Car;
do
{
Car = Console.ReadLine();
if (!string.IsNullOrEmpty(Car))
{
if (Regex.IsMatch(Car, Jo))
{
Console.WriteLine("Номер правильный. ");
}
else
{
Console.WriteLine("Номер неправильный ");
}
}
} while (!string.IsNullOrEmpty(Car));
Сжатие бинарных последовательностей
using System.Text.RegularExpressions;
Console.WriteLine("Введите последовательность: ");
string voi = Console.ReadLine();
string comp = CompressBinary(voi);
string CompressBinary(string? s)
{
string comp = Regex.Replace(voi, "1+|0+", m => ((char)('a' + m.Value.Length - 1)).ToString());
return comp;
}
Console.WriteLine( comp);
Стрелки
using System.Text.RegularExpressions;
Console.WriteLine("Введите символы: ");
string strel = Console.ReadLine();
string patt = @"(>>-->)|(<--<<)";
MatchCollection match = Regex.Matches(strel, patt);
Console.WriteLine("Количество стрел: " + match.Count);
Нумеролог
Console.WriteLine("Введите время жизни: ");
string voi = Console.ReadLine();
int count = 0;
while (voi.Length > 1)
{
int sum = voi.Sum(c => c - '0');
count++;
voi = sum.ToString();
}
Console.WriteLine($"Количество операций: {count}");
Console.WriteLine($"Полученная цифра: {voi}");
Перестановка
using System.Text.RegularExpressions;
Console.WriteLine("Введите два слова: ");
string name1 = Console.ReadLine();
string name2 = Console.ReadLine();
name1 = Regex.Replace(name1.ToLower(), @"\s+", "");
name2 = Regex.Replace(name2.ToLower(), @"\s+", "");
char[] name1Chars = name1.ToCharArray();
Array.Sort(name1Chars);
string sortedName1 = new string(name1Chars);
char[] name2Chars = name2.ToCharArray();
Array.Sort(name2Chars);
string sortedName2 = new string(name2Chars);
if (sortedName1.Equals(sortedName2))
{
Console.WriteLine("можно");
}
else
{
Console.WriteLine("нельзя");
}