Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Задача по замене символов в строке


Рекомендуемые сообщения

Как сделать на PHP замену точки с запятой на запятую между всеми аргументами функций MAX и MIN, если они есть в строке? В других местах заменять это не надо.

Нужно заменить с учетом возможных вложенных максимумов внутри главной функции и наличия других скобок там.

Пример: 3+MAX(3+5*(2+4)-MAX(5;9); 5; 4+A1)+MIN(5;30) -> 3+MAX(3+5*(2+4)-MAX(5,9), 5, 4+A1)+MIN(5,30)

Ссылка на комментарий
Поделиться на другие сайты

Я никаким образом НЕ программист, но что мешает сделать такую замену в Word'e?

Извините, если чушь сказал :thumbup:

Ссылка на комментарий
Поделиться на другие сайты

У меня данные посылаются скрипту, и это нужно делать автоматически. Но у меня как раз случай, что посылаются они из Эксела, так что можно и средствами VBA это сделать. Просто на PHP, наверно, легче.

Ссылка на комментарий
Поделиться на другие сайты

если они есть в строке

Ну если нужно заменить в строке то функцией strstr попробуй.

$stroka = strstr ($stroka, ";", ",");

Извиняюсь. Функция называется по другому.

$stroka = str_replace ($stroka, ";", ",");

Ну если нужно заменить в строке то функцией str_replace попробуй.

$stroka = str_replace ($stroka, ";", ",");
Ссылка на комментарий
Поделиться на другие сайты

Если знак ; стоит только там где он должен стоять, то действительно можно сделать простую замену, которая заменит все ; в строке.

Если же надо проигнорировать ; за пределами скобок у функций MIN и MAX то придется делать замену по регулярному выражению

но так как есть вложеные функции и скобки, возникает вопрос, нужно ли заменять ; в других функциях и в просто скобках или не нужно? чем больше ограницений, тем сложнее получится регулярное выражение, вплоть до рекурсивного выражения

Ссылка на комментарий
Поделиться на другие сайты

но так как есть вложеные функции и скобки, возникает вопрос, нужно ли заменять ; в других функциях и в просто скобках или не нужно? чем больше ограницений, тем сложнее получится регулярное выражение, вплоть до рекурсивного выражения

В общем, с помощью людей с др. форума я разобрался. Не обязательно писать какое-то большое рег. выражение, можно сделать переменную, указывающую на то, открыта ли скобка, и увеличивать ее при открытии, а при закрытии уменьшать. Мне нужно было заменять в скобках, даже если они вложены. В других функциях - пока они не используются, но код может быть примерно тот же.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...