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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2013, 01:54   #1
Phoenixx
 
Регистрация: 29.12.2011
Сообщений: 6
По умолчанию Подсчитать количество методов в классе. C#

Собственно сабж, с помощью регулярных выражений на С#. Сам класс, в котором нужно подсчитать методы, написан на C++.
Пишу так:
Код:
            Regex re = new Regex(@"^.*?\S+\s+\S+\s*?\([a-zA-Z_0-9,]*?\)\s*?{", RegexOptions.Multiline | RegexOptions.Singleline);
            MatchCollection mc = re.Matches(codeNoComments);
            return Convert.ToString(mc.Count);
Последовательность следующая: новая строка, тип возвращаемого значения, пробел, имя метода, в скобках параметры, фигурная скобка. Находит 6 методов из 8.
Если заменить [a-zA-Z_0-9,] на \S находит 19 из 8
Буду рад любой помощи

Последний раз редактировалось Phoenixx; 02.09.2013 в 02:14.
Phoenixx вне форума Ответить с цитированием
Старый 02.09.2013, 13:00   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Подсказать Вам проблематично, Вы не привели кода самого разбираемого текста (в данном случае кода класса на с++).
Чисто по регэкспу сделать в уме малореально.
Если у Вас трудности, то используйте онлайн проверку регэкспа (позволит не мучаться каждый раз пересоставлять регэксп, а сразу проверять его работу) тут http://gskinner.com/RegExr/

Если и так не удастся - приводите Ваш код класса и измышления по регэкспам, люди потянутся, т.к. уже будет от чего отталкиваться.
phomm вне форума Ответить с цитированием
Старый 02.09.2013, 14:18   #3
Phoenixx
 
Регистрация: 29.12.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Подсказать Вам проблематично, Вы не привели кода самого разбираемого текста (в данном случае кода класса на с++).
Чисто по регэкспу сделать в уме малореально.
Если у Вас трудности, то используйте онлайн проверку регэкспа (позволит не мучаться каждый раз пересоставлять регэксп, а сразу проверять его работу) тут http://gskinner.com/RegExr/

Если и так не удастся - приводите Ваш код класса и измышления по регэкспам, люди потянутся, т.к. уже будет от чего отталкиваться.
Задание подсчет методов в любом классе написанном на C++. Немного переделал:
Код:
Regex re = new Regex(@"^\s*[a-zA-Z_0-9&]*\s*[a-zA-Z_0-9&]+\s+\S+\s*?\(.*?\)\s*?{", RegexOptions.Multiline );
Методы считает правильно, но строка
Код:
else if(чото там) {
тоже попадает под регулярку. Как можно указать, что нужны цифры и буквы латинского алфавита, но кроме if else?

З.Ы. Спасибо за ссылку добавил в закладки.
Phoenixx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество совпадений Fobos1994 Паскаль, Turbo Pascal, PascalABC.NET 2 23.04.2012 06:55
Подсчитать количество ВіталікФ Microsoft Office Excel 1 04.04.2012 22:34
Задана последовательность чисел в формате:сначала количество цифр в числе, потом - цифры числа. Подсчитать количество. Arn1 Помощь студентам 4 03.10.2011 20:03
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51
Подсчитать количество слов и количество букв MDSIQ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.11.2010 16:57