Я не уверен, что точно понимаю, чего вы хотите, но, похоже, в вашем примере вы бы хотели получить «1 109 989,23».Если это так, почему бы вам просто не выбрать использовать [\d,.\x20]+
(обратите внимание, что период не экранирован, как в наборе символов, и отметьте \ x20 для выбора пробелов, если они используют это вместо запятых)просто номер.Если вы хотите выбрать все, что НЕ является частью числа, как показывает ваш пример, то вам нужно просто найти [^\d,.\x20]
.Это будет работать для любого формата валюты, а не только для тех, которые используют знак доллара.Это также позволит использовать несколько знаков препинания, например, вместо пробелов вместо пробелов разделять несколько чисел.Тем не менее, я согласен с Тимом Пицкером в том, что регулярное выражение может не подходить для работы.