Через копи пос делет.
копируешь то что между скобок, ищешь знаки +,-,\, *, если есть, выполняешь операцию между тем, что слева и тем что справа, удаляешь часть строки вместе со скобками, запсиываешь в мемо и так далее
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
С Copy Pos Delete сделал. Хочу теперь с регулярным выражением сделать, только само регулярное выражение не могу составить, чтобы парсить данные из скобок. Может кто составит? Буду благодарен за помощь!
reg.expression:='\((.*?)\)';
Кажется так, но мог со слешом перепутать, ибо давно не делал. Вытащит тебе то, что в скобках.
а дальше reg.execnext для перехода к следующей скобке.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Спасибо. Но немного не так надо. Надо чтобы, Match[1] - было первое число, Match[2] - математический символ, Match[3] - число которое после математического символа.
[Ссылки могут видеть только зарегистрированные пользователи. ]
читаем, изучаем)
А не проще ли перевести выражение из инфиксной записи в префиксную, после чего решить всё в стековой машине?
Впрочем, возможно, и то и другое является бесполезной хренью, ибо у человека, возможно, будут только простые выражения в духе "2+2", так что ему хватит и просто разделить строку. Регексп для обнаружения такого выражения:
\(\s*\d+\s*[\+\-\\\*]\s*\d\s*\)
Найдёт в обрабатываемой строке выражения вроде твоих (т.е. "(2+2)" без кавычек) но без обозначения знака.
После этого достаточно (как уже написали выше) разделить строку.
Цитата:
Сообщение от salkop
Надо чтобы, Match[1] - было первое число, Match[2] - математический символ, Match[3] - число которое после математического символа.
Так не получится. Разве-что двумя регекспами, один для обнаружения строки, второй для распихивания по матчам. Иначе ты будешь получать ещё и мусор (если в обрабатываемой строке есть ещё что-то помимо этих выражений в скобках)
Последний раз редактировалось NerdyCodingKid; 24.11.2013 в 16:59.
Причина: дополнил ответ