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

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


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

Как сделать на 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 то придется делать замену по регулярному выражению

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

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

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

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

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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