Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Примеры регулярных выражений на c# (класс RegularExpressions.Regex)



Сейчас я и хочу просто поделиться несколькими наиболее часто применяемыми конструкциями.

Кстати, появилось еще несколько примерчиков: Регулярные выражения в c#

1. Проверка e-mail:

String e_mail = "name@gmail.";

public bool isValidMail(string e_mail)
{
   string expr = 
     "[.\\-_a-z0-9]+@([a-z0-9][\\-a-z0-9]+\\.)+[a-z]{2,6}";
    
   Match isMatch = 
     Regex.Match(e_mail, expr, RegexOptions.IgnoreCase);
    
   return isMatch.Success;
}

Данный метод принимает входной e-mail и выдает true/false в зависимости от того, валидное ли имя адреса электронной почты. В данном случае метод вернет false поскольку в адресе электронной почты не указан домен первого уровня.

2. Получить все подстроки между круглыми скобками:

string str = 
   @"Обычная (случайная) строка 
     (последовательность символов). 
     И еще просто набор цифр - (как число)";

public List<string> GetWithIn(string str)
{ 
    List<string> rez = new List<string>();

    Regex pattern = 
        new Regex(@"\((?<val>.*?)\)", 
            RegexOptions.Compiled | 
            RegexOptions.Singleline);
            
    foreach(Match m in pattern.Matches(str)) 
    if(m.Success)  
       //меж скобок ( )
       rez.Add(m.Groups["val"].Value);

    return rez;
}

Метод GetWithIn получает входную строку и с помощью так называемых групп находит все вхождения между парами круглых скобок «(...)». Того же результата можно добиться и без применения группировок:

public List<string> GetWithIn(string str)
{   
    List<string> rez = new List<string>();

    Regex pattern = new Regex(@"(?<=\().*?(?=\))");
    foreach (Match m in pattern.Matches(str))
        if(m.Success)
            //меж скобок ( )
            rez.Add(m.Groups["val"].Value);

    return rez;
}

3. Получить тег <img src="..." /> и заменить его содержимое

Пришлось как то реализовать полуавтоматическое добавление статей на сайте. Схема заключалась в автоматическом поиске исходного html-текста статьи всех вхождений тега <img>. Для каждого из них необходимо было изменить путь и имя графического файла в атрибуте src.

String GetReplacedText(string text)
{
   //ищем значение для тега src
   Regex re = new Regex(
      @"(?<=<img .*?src\s*=\s*"")[^""]+(?="".*?>)");
      //или 
      //@"\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)"

   //получаем набор значений для аттрибута src     
   MatchCollection mc = re.Matches(text);
        
   List<string> al = new List<string>();
   foreach (Match m in mc)//пробегаем по набору аттрибутов src
       //выделяем только расширение файла
       al.Add(System.IO.Path.GetExtension(m.Value));

   int k = 0;
   
   string replacedText = re.Replace(text, delegate(Match m) 
			{ return "Images/"+(++k).ToString()+al[k-1]; } );
	
	return replacedText;
}

Если в тексте вхождение тега img имело такой вид:

<img src="d:/someImage.gif" /> и <img src="c:/MyFolder/anotherImageFile.png" alt="Just Alt Text" />,

то после замены мы получим следующее:

<img src=<Images/1.gif< /> и <img src=<Images/2.png< alt=<Just Alt Text< />,

сохранив расширения файлов, но заменив их новым адресом и именем файла.

4. А вот вариант для проверки адреса.

В исходной строке допустимы лишь буквы латиницы, кириллицы и знаки препинания:

@"^[a-zA-Zа-яА-Я,-;:]+$" 

или 

@"[a-zA-Zа-яА-Я,-;:]{5,50}"

В последнем варианте требуется ввести минимум 5 и максимум 50 знаков.

5. Удаление чисел (цифр) из текста

string newStr = 
   Regex.Replace("Обычна 12 строка с 75 числами",
                 @"\D", string.Empty);

Получим строку "Обычная строка с числами"

Это были самые часто используемые примеры. Я не стал рассматривать простые задачи поскольку их примеров просто валом в интернете, но когда действительно требуется написать что то посеръёзней, приходится долго таки искать. Поэтому приглашаю всех к дополнению интересными регулярными выражениями данную и последующие статьи.



Больше информации читайте по теме:

c# - итератор для списка Dictionary (foreach для словаря)
Перемешивание списков (массивов) любых типов на c# - противоположность сортировки
c# - CultureInfo (IFormatProvider) и конвертация, приведение числовых типов
Работа в c# с DateTime - получение набора дат в текущем году
GZip - архивация (упаковка) файлов на c#
DateTime - пример определения даты и времени
Время выполнения операций c#
Паттерн (шаблон) SingleTon средствами c#
Обобщенная коллекция Dictionary
c# структуры - не классы?! А что же это - struct VS class
Создание пользовательских событий на c#
Выборка файлов из директории и поддиректорий на c#
Делегаты и методы на c#
Запуск одного экземпляра приложения на c#
c# - Битовый флаг enum



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        


        Валерка    21.10.2010 9:48:33
        

Спс клевые примеры. пожалуйста напишите еще несколько интересных примеров по регуляркам. Теория без практики мертва, а прктика без теории еще держится




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок