Поиск подстроки с помощью регулярного выражения - C# (188871)
Формулировка задачи:
Дан текстовый файл, имеющий структуру "Фамилия И.О. - улица - номер дома - квартира - номер телефона". Вывести фамилии всех абонентов проживающих на улице Реввоенсовета. Помогите найти ошибку в коде.
Листинг программы
- textBox1.Text = "Не определено";
- openFileDialog1.Filter = "txt files (*.txt)|*txt";
- if (openFileDialog1.ShowDialog() == DialogResult.OK)
- {
- StreamReader f = new StreamReader(openFileDialog1.FileName, Encoding.GetEncoding(1251)) ;
- Regex r = new Regex(@"^([А-Я][а-я]+)\s+([А-Я])\.\s*([А-Я])\.\s+(\d+)\s+(\d+)$");
- Regex r1 = new Regex("Реввоенсовет");
- string s;
- while ((s = f.ReadLine())!= null)
- {
- Match match = r.Match(s);
- Match match1 = r1.Match(s);
- if (match.Success && match1.Success)
- {
- textBox1.Text += match.Groups[2].Value + "\n";
- }
- }
- if (textBox1.Text == "") textBox1.Text = "Не найдено";
- }
- else textBox1.Text = "Файл не может быть открыт";
Решение задачи: «Поиск подстроки с помощью регулярного выражения»
textual
Листинг программы
- namespace ConsoleApplication56
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<string> Correct = new List<string>();
- string[] strs = new string[] { "Фамилия И.О. - улица - номер дома - квартира - номер телефона", "Иванов И.О. - Переулок Реввоенсовета малый - номер дома - квартира - номер телефона", "Фамилия И.О. - улица - номер дома - квартира - номер телефона" };
- //strs = File.ReadAllLines(filename);
- foreach (string str in strs)
- {
- var mt = Regex.Match(str, @"[^-]*(?=.*?Реввоенсовета)");
- if(mt.Success) Correct.Add(mt.Value);
- }
- foreach (var v in Correct) Console.WriteLine(v);
- Console.Read();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д