// перегрузка операции унарного -: удаляет из поля text все фрагменты, // соответствующие регулярному выражению поля r. public static RegExspression operator -(RegExspression reg) { RegExspression tmp = new RegExspression(); tmp.R = reg.R; tmp.S = reg.S; //Console.WriteLine("reg.R = {0}, reg.S = {1}, tmp.R = {2}, tmp.S = {3}", // reg.R, reg.S, tmp.R, tmp.S); tmp.S = tmp.DeleteMatches(); return(tmp); }
public static bool operator false(RegExspression reg) { RegExspression tmp = new RegExspression(); tmp.S = reg.S; if (tmp.S != null) { return(true); } else { return(false); } }
// перегрузка операции бинарного +: дописывает в конец поля text строку. public static RegExspression operator +(RegExspression reg) { RegExspression tmp = new RegExspression(); tmp.S = reg.S; string newText; Console.WriteLine("Введите текст: "); newText = Convert.ToString(Console.ReadLine()); tmp.S += newText; return(tmp); }
static void Main(string[] args) { RegExspression A = new RegExspression(@"[а-я]", ""); Console.WriteLine("Введите фразу: "); A.S = Convert.ToString(Console.ReadLine()); A.Exist(); A.ShowMatches(); Console.WriteLine("\nОбращение по индексу к регулярному выражению: "); Console.WriteLine(A[0]); Console.WriteLine("Обращение по индексу к строковому полю: "); Console.WriteLine(A[1]); A.S = A.DeleteMatches(); Console.WriteLine("\nТекст после удаления: \n{0}", A.S); RegExspression B = new RegExspression(@"[a-z]", ""); Console.WriteLine("Введите фразу латиницей: "); B.S = Convert.ToString(Console.ReadLine()); // Задача 2 работа с перегрузкой B = -B; Console.WriteLine("\nТекст после удаления (перегрузка унарный минус): \n{0}", B.S); if (B) { Console.WriteLine("Поле text не пустое"); } else { Console.WriteLine("Поле text пустое"); } B = +B; Console.WriteLine("\nТекст после добавления (перегрузка унарный плюс): \n{0}", B.S); Console.ReadKey(); }