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


Автор: Raid 10.4.2009, 22:48
Привет.
Почитал про регулярные выражения, но все равно не могу никак составить. По условию задачи нужно в массива строк (строка = слово) найти слова удовлетворяющие простому шаблону. В шаблоне, задаваемом пользователем есть только буквы русского алфавита и звёздочка, которая стандартно представляет любое кол-во букв.
В чем проблема: хочу и нужно в данном случае искать не подстроку в строке, а работать со всей строкой.
Пример: пользователь задает самый примитивный шаблон "а". Т.е. он хочет найти слово, состоящее из одной буквы.
Уже сказал, что не очень силён в регулярных, поэтому пишу так:

Код


            string word = "аб";             // строка, которую проверяем
            string clause = "а";             // условие
            Regex r = new Regex(clause);

            bool t = r.IsMatch(word);
            Console.WriteLine(t);


Естественно выдает True. Какими символами можно определить в выражении, что, скажем после этой "а" из условия, слово должно закончится. или скажем с "а" начинаться. Т.е. искать не есть ли в какой-то строке подстрока, удовлетворяющая условию, а удовлетворяет ли условию вся строка.

Буду очень благодарен за совет.

Автор: NightmareZ 10.4.2009, 22:59
http://www.intuit.ru/department/pl/csharp/15/

Автор: Rififi 11.4.2009, 00:08
... слово должно закончится. или скажем с "а" начинаться ...
\b = граница слова.
По регэкспам полно информации в том числе и на русском и в бумажном виде.
http://lmgtfy.com/?q=%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5+%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%81

Автор: diadiavova 11.4.2009, 10:55
Если я правильно понял задачу, то, кажись, так
Код

^[a\*]+$

Автор: source777 12.4.2009, 15:27
Чтобы выполнить проверку
word == "а"
регулярные выражения не нужны!


Цитата(Raid @  10.4.2009,  22:48 Найти цитируемый пост)
Т.е. искать не есть ли в какой-то строке подстрока, удовлетворяющая условию, а удовлетворяет ли условию вся строка.

^условие$

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