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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2017, 13:43   #1
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию Помогите с регулярными выражениями RegEx

Есть некоторый макрос работы с формулами.
Общий смысл в том что в екселе есть ряд строчек. Буквенное обозначение переменной (например D_1) и рядом ее значение.
Потом набираются расчеты. Чтобы избежать лишних ошибок нужно из формулы D_1+D_2 получать выражение формулы вида =B91+B93
Все в принципе работает (при простых именах переменных).
Используются регулярные вырежания
RegExp.Pattern = "[a-zA-ZА-Яа-я_]+[0-9]*"
отлавливает имена вида D_1, a_2, K и т.д.
Как доработать этот шаблон чтобы отлавливались все выражения вот такого вида:
G_(п.в)
DELTAi_(с.в)
alpha_(с.н)^(к.о)
i'_н2
i'_(п.в)
Q^3

Понимаю что ^ в общем случае оператор возведения в степень, но в расчетах у меня он почти не используется - а в обозначении переменных часто.
bdfy вне форума Ответить с цитированием
Старый 14.09.2017, 15:00   #2
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

https://regexr.com/
пробую такую маску [a-zA-ZА-Яа-я']+[_0-9a-zA-ZА-Яа-я().^]*
тестовый стринг
(G_(п.в)*(i'_3-i_3)-kpd_то*((D_1+D_2)*(i'_н2-i'_н3)))/((i_о3-i'_н3)*kpd_то)

некорректно обрабатываются скобки т.е захватываются скобки отвечающие за математические действия

Вот так почти работает
[a-zA-ZА-Яа-я0-9.']+([_^]?(\()?[a-zA-ZА-Яа-я.0-9]*(\))?)*
Но как согласовать чтобы закрывающая скобка (2 группа) искалась только когда есть открывающая (1 группа)?

Последний раз редактировалось bdfy; 14.09.2017 в 15:19.
bdfy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с регулярными выражениями UKRtortik Общие вопросы Delphi 19 18.03.2014 17:29
Помогите с регулярными выражениями Yan C# (си шарп) 0 15.01.2014 22:57
Проблема с регулярными выражениями heartborne123 PHP 2 15.09.2010 21:50
Работа с регулярными выражениями Igoressicus Помощь студентам 0 08.06.2010 22:15
Помощь с регулярными выражениями WebSQLNeeder PHP 8 09.07.2008 17:57