motorway Posted July 17, 2009 Report Share Posted July 17, 2009 Как сделать на 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) Link to comment Share on other sites More sharing options...
Old men Posted July 17, 2009 Report Share Posted July 17, 2009 Я никаким образом НЕ программист, но что мешает сделать такую замену в Word'e? Извините, если чушь сказал :thumbup: Link to comment Share on other sites More sharing options...
motorway Posted July 17, 2009 Author Report Share Posted July 17, 2009 У меня данные посылаются скрипту, и это нужно делать автоматически. Но у меня как раз случай, что посылаются они из Эксела, так что можно и средствами VBA это сделать. Просто на PHP, наверно, легче. Link to comment Share on other sites More sharing options...
XAKEPok Posted July 22, 2009 Report Share Posted July 22, 2009 если они есть в строке Ну если нужно заменить в строке то функцией strstr попробуй. $stroka = strstr ($stroka, ";", ","); Извиняюсь. Функция называется по другому. $stroka = str_replace ($stroka, ";", ","); Ну если нужно заменить в строке то функцией str_replace попробуй. $stroka = str_replace ($stroka, ";", ","); Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted July 25, 2009 Report Share Posted July 25, 2009 Если знак ; стоит только там где он должен стоять, то действительно можно сделать простую замену, которая заменит все ; в строке. Если же надо проигнорировать ; за пределами скобок у функций MIN и MAX то придется делать замену по регулярному выражению но так как есть вложеные функции и скобки, возникает вопрос, нужно ли заменять ; в других функциях и в просто скобках или не нужно? чем больше ограницений, тем сложнее получится регулярное выражение, вплоть до рекурсивного выражения Link to comment Share on other sites More sharing options...
motorway Posted July 25, 2009 Author Report Share Posted July 25, 2009 но так как есть вложеные функции и скобки, возникает вопрос, нужно ли заменять ; в других функциях и в просто скобках или не нужно? чем больше ограницений, тем сложнее получится регулярное выражение, вплоть до рекурсивного выражения В общем, с помощью людей с др. форума я разобрался. Не обязательно писать какое-то большое рег. выражение, можно сделать переменную, указывающую на то, открыта ли скобка, и увеличивать ее при открытии, а при закрытии уменьшать. Мне нужно было заменять в скобках, даже если они вложены. В других функциях - пока они не используются, но код может быть примерно тот же. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now