Вопрос по регулярным выражениям и извлечению значения
От: Аноним  
Дата: 06.10.10 12:08
Оценка:
Изучаю данную теме, запутался.

На входе есть некоторая строка s, которую надо проверить:

string s = ""; // "AB_xхx_CD";


1. первые три символа AB_ (присутствуют всегда).
2. последние три символа _CD (присутствуют всегда).
3. вместо ххх может быть любое число от 0 до 100000 причем могут быть числа вида 006, 045678.

Надо проверить, соответствует ли она заданному шаблону, и если соответствует, то получить число xxx в виде int.

Re: Вопрос по регулярным выражениям и извлечению значения
От: Lloyd Россия  
Дата: 06.10.10 12:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Надо проверить, соответствует ли она заданному шаблону, и если соответствует, то получить число xxx в виде int.


А>


class Program {
    static void Main() {
        var regex = new Regex(@"AB_(?<num>(0?\d{1,5})|100000)_CD");
        Test(regex, "AB_012_CD");
        Test(regex, "AB_000000_CD");
        Test(regex, "AB_0000000_CD");
        Test(regex, "AB_100000_CD");
        Test(regex, "AB_200000_CD");
        Test(regex, "AB_012345_CD");
    }

    static void Test(Regex regex, string s) {
        var match = regex.Match(s);
        Console.WriteLine("{0}: {1}", s, match.Success);
        if (match.Success) {
            string num = match.Groups["num"].Value;
            Console.WriteLine("  {0} - {1}", num, int.Parse(num));
        }
    }
}
Re: Вопрос по регулярным выражениям и извлечению значения
От: matumba  
Дата: 06.10.10 13:42
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Изучаю данную теме, запутался.


Ну... и в чём молодой человек запутался? Здесь же не клуб бесплатного решения лабораторок. Вы хоть знания попробовали бы получить...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.