Вы можете использовать
(?<=\$)\d+(?![.\d])
См. regex demo .
Синонимные выражения, показывающие использование собственнического квантификатора и атомарной группировки:
(?<=\$)\d++(?!\.)
(?<=\$)(?>\d+)(?!\.)
Выражение для тех сред, где lookbehind не поддерживается, должно иметь группу захвата вокруг шаблона \d+
:
\$(\d+)(?![.\d])
^ ^
Тогда необходимое значение находится в группе 1.
Итолько к вашему сведению: \$([0-9]+)($|[^.0-9])
будет работать даже с POSIX ERE.
Подробнее
(?<=\$)
- $
должно появиться сразу слева оттекущая позиция \d+
- 1+ цифр (?![.\d])
- точка или цифра не должны появляться сразу справа от текущей позиции.
График регулярных выражений:
