Привет, не могу сообразить...
Вот
Если после ! идет НЕ пробел, то заменить на ?
$a=preg_replace('#![^ ]#U','?',$b);
Все нормально, но вот фраза:
$b="Hello World!Test";
на выходе
$a="Hello World?est";
т.е. съедает "Т"
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Вопрос снят
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
$b='Hello World_0! Hello World_1!Test Hello World_2!Test';
$a=preg_replace('#(![^ ])#','?',$b);
echo '<br>'.$a;
Так и не сделал, как оказалось...
Как заставить не съедать "T"?
:)
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
?
$a=preg_replace('#!([^\s])#',"!?$1",$b);
rooor
Цитата |
$a=preg_replace('#!([^\s])#',"!?$1",$b); |
Я так понял здесь "!?$1" восклицательный знак лишний и почему, то село пробелы:
$a=preg_replace('#!([^ ])#',"?$1",$b); //так тоже
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
а так?
$a=preg_replace('#(!([^\s]))#',"!?$2",$b);
кстати, твоя регулярка соответствует запросу))
Цитата |
Если после ! идет НЕ пробел, то заменить на ? |
вот она НЕ пробел и заменяет, в данном случае Т
rooorС П А С И Б О!
И еще тысяча благодарностей!
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Блин...
$b='Hello World_0! Hello World_1!!! Test Hello World_2!Test';
$a=preg_replace('#(!([^ ]))#',"!?$1",$b);
Восклицательные знаки остаются, когда их много, а должно все заменится на вопросы, даже если они сами после себя стоят, а не только Т, вообще любой другой символ :(
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
johniek_comp
5.11.2014 - 18:27
Цитата |
Восклицательные знаки остаются, когда их много, а должно все заменится на вопросы, даже если они сами после себя стоят, а не только Т, вообще любой другой символ |
юзай "+" а для пробела должно быть \s
_____________
Цитата |
юзай "+" а для пробела должно быть \s |
johniek_compМне не нужен пробельный символ, мне нужен пробел. По поводу "+" можешь показать, как юзать, код уже написан, куда вставлять?
$a=preg_replace('#(!([^ ]))#',"!?$1",$b);
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Winston
5.11.2014 - 18:35
Покажи строку которая у тебя есть и строку которую тебе нужно получить
Winston
Исходная строка: 'Hello World_0! Hello World_1!Test Hello World_2!!!!!!';
Строка на выходе: 'Hello World_0! Hello World_1?Test Hello World_2??????;
Если после "!" стоит ПРОБЕЛ, то ничего делать не надо, если НЕ ПРОБЕЛ (в том числе и другие "!"), то заменить каждый "!" на "?"
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Winston
5.11.2014 - 19:14
Так?
$b='Hello World_0! Hello World_1!Test Hello World_2!!!!!!';
$a=preg_replace('#!(?! )#',"?",$b);
WinstonПросто круть!!! Вообще впервые такую конструкцию увидел
?!«Смотрящие вперед» утверждения ищут совпадения в строке за текущей позицией поиска и начинаются с негативных утверждений.
Winston, спасибо еще раз, какой раз выручил, всё работает!
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.