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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2009, 23:01   #1
XeN0N
Форумчанин
 
Аватар для XeN0N
 
Регистрация: 18.01.2009
Сообщений: 118
По умолчанию регулярное выражение

es([^t][^x])?([^;\"])+es([^t][^x])?

У меня есть строка. В ней последовательность команд, разделенных символом ; строка начинается и заканчивается кавычками. Нужно проследить чтобы в каждой команде было:

О командах: бывают два типа команд, es_x команды и es_ команды
Если es_ команда встречает переменную, она заменяет ее значением (действие expand) а es_x просто использует имя переменной как текст.
К экспандирующим ( не подобрал более подходящего для них слова) относятся:
if
es
es_любойтексткоманды
К неэкспандирующим:
es_xif
est_любойтексткоманды
es_xлюбойтексткоманды
Так как экспандирующие занимают больше времени возникла необходимость в скрипте который посмотрит чтобы в строке ограниченной ;, или " с конца или начала было не больше 1 экспандирующей команды

Например:
Код:
"if (server_var(var1) > 5) then es_xif (server_var(var1)<10) then es_msg 123;if (server_var(qwe) < 0) then es est_slay event_var(userid)"
Красным подчеркнуты лишние экспандирующие команды

Я начал делать регулярное выражение для этого (пока без if) но оно почемуто реагирует на строку
Код:
"skill1_cmd" "es es_xif (server_var(wcs_dice) <= 60) then racealias_uds1"
Вот выражение
es([^t][^x])?([^;\"])+es([^t][^x])?
XeN0N вне форума Ответить с цитированием
Старый 27.01.2009, 15:14   #2
XeN0N
Форумчанин
 
Аватар для XeN0N
 
Регистрация: 18.01.2009
Сообщений: 118
По умолчанию

а п
XeN0N вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi,преобразование строки в выражение Chidory Помощь студентам 10 16.12.2008 02:18
Проверить выражение fosto Общие вопросы Delphi 1 16.12.2008 01:52
Проверьте выражение fosto Помощь студентам 2 15.12.2008 22:58
Не проверяется логическое выражение в операторе While lsd11 Помощь студентам 2 15.10.2008 19:09
Строковое выражение SeregaIRK Общие вопросы C/C++ 1 07.10.2008 19:20