ababin dba619a6c0 Обновить 'README.md' | 6 сар өмнө | |
---|---|---|
.idea | 6 сар өмнө | |
ConsoleApp18 | 6 сар өмнө | |
ConsoleApp18.sln | 6 сар өмнө | |
README.md | 6 сар өмнө |
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
Проверка на соответствие строки формату
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");
}
}
Вывод:
введите адрес электронной почты
hardbad62@gmail.com
email подтвержден
Замена и метод Replace Класс Regex имеет метод Replace, который позволяет заменить строку, соответствующую регулярному выражению, другой строкой:
string s = "Мама мыла раму. ";
string pattern = @"\s+";
string target = " ";
Regex regex = new Regex(pattern);
string result = regex.Replace(s, target);
using System.Text.RegularExpressions;
string num = @"^[A-Z]{1}\d{3}[A-Z]{2}$";
Console.WriteLine("Введите номер:");
while (true)
{
string input = Console.ReadLine();
if (string.IsNullOrEmpty(input))
{
break;
}
if (Regex.IsMatch(input, num))
{
Console.WriteLine("Номер соответствует стандарту.");
}
else
{
Console.WriteLine("Номер не соответствует стандарту.");
}
}
using System.Text.RegularExpressions;
static void Main()
{
string binary = "0000000000000000000000000101010101001010101";
string compressedSequence = CompressBinary(binary);
Console.WriteLine("Сжатая последовательность: " + compressedSequence);
}
static string CompressBinary(string binarySequence)
{
string compressedSequence = Regex.Replace(binarySequence, "1+|0+",
m => ((char)('a' + m.Length - 1)).ToString());
return compressedSequence;
}
using System.Text.RegularExpressions;
Console.WriteLine("Введите стрелы: ");
string s = Console.ReadLine();
string p = @"(>>-->)|(<--<<)";
MatchCollection match = Regex.Matches(s, p);
Console.WriteLine("Количество стрел: " + match.Count);
using System.Text.RegularExpressions;
Console.WriteLine("Введите два слова: ");
string a = Console.ReadLine();
string b = Console.ReadLine();
a = Regex.Replace(a.ToLower(), @"\s+", "");
b = Regex.Replace(b.ToLower(), @"\s+", "");
char[] aChar = a.ToCharArray();
Array.Sort(aChar);
string aSorted = new string(aChar);
char[] bChar = b.ToCharArray();
Array.Sort(bChar);
string bSorted = new string(bChar);
if (aSorted.Equals(bSorted))
{
Console.WriteLine("Из одного имени можно получить другое.");
}
else
{
Console.WriteLine("Из одного имени нельзя получить другое.");
}