Я пытаюсь преобразовать некоторые цены:Форматирование евро цены в PHP
[0] => EUR 19,06
[1] => 19, 70 €
[2] => 42.53 €
[3] => 18€65
[4] => 19,99 €
[5] => 18€65
[6] => 23€95
[7] => 19,99 €
в этот формат: xx.xx €
Я использую это регулярное выражение:
/(EUR|)\s*(\d{1,})\s*(\.|,|€|€|)\s*(\d{1,}|)\s*(€|€| €| €|)\s*/
и эту маску в a preg_replace
:
$match = '${2}.$4 €';
Он отлично работал за исключением 5-й записи: 19,99 €. Что не так с этим?
Кажется, работает со мной, https://regex101.com/r/mA7mX5/2 https://eval.in/475914 Вы также можете декодировать объекты в строке перед обработкой с помощью регулярного выражения. – chris85