Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178

Регулярное выражение

08.11.2014, 15:40. Показов 698. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана последовательность (-1.2+3.0)+2-8/6. Надо разбить строку на символы и числа. Как нужно отредактировать этот шаблон, чтобы число с минусом перед ним считалось отрицательным только если оно стоит первым в выражении?
C++
1
^-?\d+\.?\d|[-+/()]
Сейчас же получается -1.2 и -8 (а не - и 8).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2014, 15:40
Ответы с готовыми решениями:

Регулярное выражение
Пишу под Qt и получил такую проблему. Почему данный код не выводит чего либо в консоль?: QString data("<div...

Регулярное выражение
Добрый день! Помогите расшифровать регулярное выражение, что оно ищет. (;.*|.*|)+

Регулярное выражение
Здравствуйте. Кто знает, возмжно ли в регулярное выражение передать символ char, а не строку целиком.? то есть, вот так работает: ...

3
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
11.11.2014, 20:29  [ТС]
Предыдущий вопрос отпал, сделал добавление минуса в нужном месте в другой части кода.

Новый вопрос: возможно ли написать шаблон, в котором искались бы пары символов: (, ), +, -, *, / в любых комбинациях, за исключением:
+-, --, *-, /-, (-, если за "-" следует цифра;
-(, если перед "-" цифра или ")";
)-, если после "-" цифра или "(".
Идея в том, чтобы с помощью regex_search() определить, корректна ли строка математического выражения, если в ней встречаются только исключения.
Решил таки спросить, а то может это нереализуемо, а я бьюсь несколько часов.

Добавлено через 2 часа 1 минуту
Вроде так...
Code
1
[\\(+*/-]([^-\\d)(]|[+*/])|\\)\\D[^-(\\d]|[-+*/]$
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.11.2014, 20:47
Не проще ли как-то так?
Code
1
[-+\\(*/]-\\d|[\\d\\)]-\\(|\\)-[\\d\\(]
А вообще, странное решение. Не очень понятен "алгоритм" проверки. Можно привести пример верного и неверного выражения?

Добавлено через 1 минуту
Gambit_88, вы уверены, что следует использовать регулярные выражения вообще в данном случае (имеется в ввиду стартовый вопрос) ?
0
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
12.11.2014, 11:23  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
пример верного и неверного выражения
1. (-1+-2)*3/4-5
2. -(+1-+2*)3/

Если не ошибся, то этот ужас подходит под критерии.
Code
1
(^[-+*/](\(|\D+|-\d)|[\(+*/-]([^-\d(]|[+*/]|-{2,})|\)\D[^-(\d]|^[^-]\(|[-+*/](\($|$))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2014, 11:23
Помогаю со студенческими работами здесь

Регулярное выражение
Имеется следующее регулярное выражение для проверки email адреса. В данном случае меня интересует часть, идущая после "@". Email...

Регулярное выражение regrex
Все $ поменять на Yes только через regrex И объяснить как создавать их самостоятельно Только для чайников

Регулярное выражение regex
TCHAR *s = (TCHAR*)"mov eax,dword"; regex r("mov eax,dword{4,}]"); if (regex_match(s, r)) { MessageBox(NULL, "True", NULL,...

написать регулярное выражение
Как написать регулярное выражение, которое убирает все символы кроме цифр c плавающей запятой из последовательности

Не работает регулярное выражение
Здравствуйте, есть метод с регулярным выражением: bool Library::ValidGenreCode(std::string genreCode) { const std::string genreCodeExp...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru