Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2016, 14:55   #1
Basachi
Пользователь
 
Регистрация: 15.11.2015
Сообщений: 13
По умолчанию С# Регулярные выражения

Здравствуйте! Возможно ли переделать код моей программы, которая удаляет из строки числа кратные трем и переносит в новую строку, но с использованием регулярных выражений? Если да, то не могли бы Вы пояснить мне принцип? Заранее благодарю всех за помощь.

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Лаб7
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0; string text2 = ""; 
            Console.Write("Введите строку состоящую только из цифр: ");
            
            string text = Console.ReadLine();
            while (i < text.Length)
            {
                if (Char.IsDigit(text, i) && Convert.ToInt32(text[i]) % 3 == 0)
                {
                    text2+= text[i];  
                    text = text.Remove(i, 1);
                }
                i++;
            }
            Console.WriteLine("Строка без чисел кратных трем: {0}", text);
            Console.WriteLine("Строка с числами кратными трем: {0}", text2);
            Console.ReadKey(); 
        }
     
    }
}

Последний раз редактировалось Вадим Мошев; 16.10.2016 в 19:45.
Basachi вне форума Ответить с цитированием
Старый 16.10.2016, 17:27   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
namespace ConsoleApplication1 {
  class Program {
    static void Main(string[] args) {
      var input = "15 5 adg 18 bbbv 7 7 9";
      var regex = new Regex(@"\b\d+\b");

      var result = regex.Replace(input, replacer);
      Console.WriteLine(result);
      Console.ReadLine();
    }

    private static string replacer(Match match) {
      var number = int.Parse(match.Value);
      var del = ((number%3) == 0) ? "\r\n" : "";
      return match.Value + del;
    }
  }
}
подгонишь под себя и я не уверен, что верно понял детали задачи (бегло прочёл)
P.s. \b - границы "слова", но и на числах работает
GreenWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения antiwindows JavaScript, Ajax 9 24.09.2015 12:21
Регулярные выражения Vanta11a Помощь студентам 2 05.05.2011 12:44
Регулярные выражения papos Помощь студентам 0 26.04.2011 20:12
Регулярные выражения Dima_D Общие вопросы Delphi 0 11.08.2010 21:16