#php #regex
#php #регулярное выражение
Вопрос:
Это моя попытка, но она не работает. В наши дни я так устал от регулярных выражений, что понятия не имею, что с ним не так. Любая помощь?
$pattern = '/-$[.*]$/';
Комментарии:
1. Замените квадратные скобки круглыми скобками.
Ответ №1:
Вам нужно поместить *
вне []
(или, что еще лучше, использовать
).
Попробуйте '/-$[0-9.] /'
:
$pattern = '/-$[0-9.] /';
Или, если — $ 7.50 всегда будет в конце строки:
$pattern = '/-$[0-9.] $/';
Комментарии:
1. @Smamatti отредактировано, чтобы удалить последний $. Было ли это указано в вопросе?
2. Извините. Я просто подумал, что решение должно быть более общим. Это неправильно, потому что это не было указано таким образом?
3. @Smamatti В этом нет ничего плохого, я просто подумал, что на секунду ослеп :).
Ответ №2:
$pattern = '/-$(.*)$/';
Если я правильно понял. Число будет доступно как «$ 1» в строке замены
Ответ №3:
Попробуйте с:
$pattern = '/-$d .d /';
Оно будет соответствовать знаку минус (если вы измените его на -?
, минус будет необязательным), цифрам, точке и цифрам после точки.
Ответ №4:
<?php
$string = 'Wow! -$7.50 now!';
$pattern = '/-$(d ).(d )/';
$replacement = '-10%';
echo preg_replace($pattern, $replacement, $string);
?>
Комментарии:
1. Поместите знак минуса в выражение.