Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Регулярные выражения


Автор: VladikDM 22.1.2009, 17:33
Не могу понять тему регулярных выражений. Для чего они существуют это понятно.
Пожалуйста киньте линк для чайников. Просто статьи некоторые сложные с кучей не понятных слов  smile 

Автор: QryStaL 22.1.2009, 18:01
http://www.rsdn.ru/?/article/alg/regular.xml

Автор: Rififi 22.1.2009, 18:13
VladikDM, 
user posted image
В http://www.softtime.ru/article/index.php?id_article=62 книге есть всё и даже больше того, что нужно знать о регэкспах. В сети найти не проблема.

Автор: VladikDM 23.1.2009, 01:32
Спасибо за ссылки, стало намного понятнее  smile 
Если не сложно вот на примере покажите как выглядит код:
Есть строка, нужно её разбить на слова чтоб каждое слово стало объектом массива.
Просто хочу увидеть применение в полном коде  smile 

Автор: chaos 23.1.2009, 09:04
Цитата(VladikDM @ 22.1.2009,  22:32)
Спасибо за ссылки, стало намного понятнее  smile 
Если не сложно вот на примере покажите как выглядит код:
Есть строка, нужно её разбить на слова чтоб каждое слово стало объектом массива.
Просто хочу увидеть применение в полном коде  smile

Я пока только начал изучать C#.
для разюиения строк типо 
Код

string TextValue = "1 2 3 4 5 6 7 8 9";
string[] TextElements = TextValue.Split(' ');
foreach (string TextElement in TextElements)
{
    Console.WriteLine(TextElement);
}


для разбияния используются разного рода Split'ы, а для выделения как раз регулярные выражения. Один момент: для Split'ов тоже возможно использовать паттерны.

ЗЫ щас придут люди будут говорить что регекспы это зло smile

Автор: chaos 23.1.2009, 09:43
вот реальная задача для применения регекспов ИМХО:

есть список uri из которых нужно отсеять правельные.
правельными считаются например
Код

http://host.ru/blablabla
http://host.ru/blablabla/1
http://host.ru/blablabla/2
/blablabla/2
/blablabla
http://host.ru/lala/2
http://host.ru/lala
/lala
/lala/666
http://host.ru/kuku/
http://host.ru/kuku/2/afasfasdfdsfsfs
/kuku/45/dfgdg?rt=345&sertwert=4


Код

        private static bool CheckUri(string TestUri, string BaseUri)
        {
            string MyPattern = string.Format(
                @"^({0})?/((blablabla(/\d+)*)|(lala(/\d+)?)|(kuku/\d+\/[^\?]+))(\?.+)?$", BaseUri);
            return Regex.IsMatch(TestUri, MyPattern);
        }
        
        public static void Main(string[] args)
        {
            Console.WriteLine(CheckUri("http://host.ru/blablabla", @"http://host.ru"));
            Console.WriteLine(CheckUri("http://host.ru/blablabla/1", @"http://host.ru"));
            Console.WriteLine(CheckUri("http://host.ru/blablabla/asd", @"http://host.ru"));
            Console.WriteLine(CheckUri("blablabla/asd", @"http://host.ru"));
            Console.WriteLine(CheckUri("/blablabla/666", @"http://host.ru"));
            Console.WriteLine(CheckUri("/blablabla/asd", @"http://host.ru"));
            Console.WriteLine(CheckUri("/lala/asd", @"http://host.ru"));
            Console.WriteLine(CheckUri("http://host.ru/kuku/2/wqeqwewqe?a=1&b=4", @"http://host.ru"));
            
        }

Автор: VladikDM 23.1.2009, 13:27
Чтото мне такой пример не очень помог  smile 
Можно на задаче по проще пжалста  smile 

Автор: chaos 30.1.2009, 07:53
VladikDM, есть строка вида
YYYY-MM-DD hh:mm:ss

нужно все это засунуть в переменные(6 штук)

Автор: PashaPash 30.1.2009, 11:19
chaos, этот пример решается без всяких регулярных выражений,
Код

            string dateTimeString = "2006-04-17 21:38:09";
            DateTime parsedValue = DateTime.ParseExact(dateTimeString + "Z", "u", CultureInfo.InvariantCulture);

не хватало еще дату вручную парсить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)