нагуглить такие простые регэкспы должно быть несложно
с целыми числами всё просто: \d+ Объяснение: \d означает любую цифру; + - повторение предыдущего символа (т.е. любой цифры) не менее 1 раза, т.е. валидными будут 1, 5, 0, 12, 34545, ... . если окружить этот регэксп круглыми скобками, то число сохранится в переменной $1 или \1 или в QRegExp::cap(1) (всё зависит от того, где ты их используешь).
с дробными уже немного посложнее. \d*\.?\d+ Объяснение: * - повторение предыдущего символа (т.е. любой цифры) не менее 0 раз, т.е. в этом месте цифры вообще могут отсутствовать; \. - точка (\ перед ней необходим, т.к. в регэкспах просто символ . означает любой символ), ? - предыдущий символ (точка) может присутствовать, а может и нет (в этом месте валидными строками уже будут 1., 1, 12, 345., ., пустая); ну и последняя часть уже известна. таким образом, валидными строками будут 3, 3.5, 3.456, 1234, 456.5, 345.567, .1, .456 (когда перед точкой нет цифры, это подразумевает 0 целых)
в примерах не учитывается знак перед числом. если это нужно, то просто допиши в начало [-+]? - квадратные скобки означают вхождение любого из символов внутри них, ну а ? я уже описал.
как научиться им: говорят книга Фридла очень хорошая, но в приципе хелпа по QRegExp/мана в юниксовой справке/документации Перла должно быть достаточно.
edit: раз необходима поддержка запятой, то замени \. на [,.]