я пытаюсь этот код, но я получаю эту ошибку: No ending delimiter '/' found
$form = " 2000,50"; $salary = preg_replace('/',', '.'/', $form); // No ending delimiter '/' found echo $salary;
Я не уверен в правильности регулярного выражения.
Regex переполнен для замены только одного символа. Почему бы просто не сделать это вместо этого?
str_replace(',', '.', $form);
$salary = preg_replace('/,/', '.', $form);
Но да, вы действительно не хотите сопоставлять шаблон, но строку, которая является постоянной , поэтому просто используйте str_replace()
.
Вы можете просто использовать
str_replace(',','.',$form);
Я не понимаю ваши параметры – я не уверен, что должно быть в строке, а что нет. Но для preg_replace шаблон поиска должен быть строкой, а строка также начинается и заканчивается разделителем (обычно «/»). Я думаю, что redudant нуждается в косых чертах вокруг строки поиска, когда она уже находится внутри строки, но так оно и работает.
Второй параметр должен содержать строку, содержащую полную остановку, и ничего больше. Это дает:
$ зарплата = preg_replace ('/, /', '.', $ form);
Другие люди верны, что str_replace будет отлично подходит для превращения одного персонажа в другой, но если замена, которую вы хотите, будет более сложной, preg_replace будет разумным.
«/» В вашей строке используется как разделитель начала регулярного выражения, поэтому вам нужно его избежать. Правильная строка должна выглядеть следующим образом:
$salary = preg_replace('\\/',', '.'/', $form);
Мне также интересно, почему второй параметр «,». '/' скорее, чем ', /'.
РЕДАКТИРОВАТЬ
Ahh, я вижу сейчас, строка должна гласить:
$salary = preg_replace( '/,/', '.', $form);
Я был смущен, потому что первая запятая в вашем примере должна быть «.». для согласования строки.