Регулярное выражение для сопоставления чисел с запятыми и десятичными знаками в тексте или без них

Я пытаюсь найти и заменить все числа в теле текста. Я нашел несколько примеров регулярных выражений, которые почти решают проблему, но пока нет идеальных. У меня проблема в том, что числа в моем тексте могут иметь или не иметь десятичные дроби и запятые. Например:

«5000-фунтовая лиса перепрыгнула через забор размером 99 999,99998713 футов».

Регулярное выражение должно возвращать " 5000 " и " 99,999.99998713 ". Примеры, которые я нашел, разбивают числа на запятую или ограничиваются двумя десятичными знаками. Я начинаю понимать регулярное выражение ' Этого достаточно, чтобы понять, почему некоторые примеры ограничены двумя десятичными знаками, но я еще не научился преодолевать это, а также включать запятую, чтобы получить всю последовательность.

Вот моя последняя версия:

[0-9]+(\.[0-9][0-9]?)?

Что возвращает , « 5000 », « 99,99 », « 9,99 » и « 998713 » для текста выше.

87
задан Donut 6 May 2011 в 21:16
поделиться