Это следует сделать следующим образом:
[-+]?([0-9]*\,)?[0-9]+
Или, если вы хотите преобразовать напрямую в число с плавающей точкой, взяв запятую "," как точку ".", То я думаю, вам следует установитьВаш языковой стандарт на французский, как указано здесь :
setLocale(LC_ALL, 'fr_BE.UTF-8');