именно так (поиск корректной записи вида '$***.***'):
d = 'You have $10.00 $0 $$10.33 $$ $0$0$ $0$ 10.33$ $5'
print(re.findall('\\b\$[0-9.]*\\b', d)) #поиск корректной записи вида '$*.*'
>>> ['$0'] #вместо ожидаемых ['$10.00', '$0', '$5']
При этом такая кривулька работает хорошо:
print(re.findall(' (\$[0-9.]*(?:\s|$))', d))
Может, я неправильно понимаю назначение \b, который должен мэтчить совпадение целиком (т.е. окружен пробелами\концом строки)?
\$([0-9\.]+)?\s
Не, суть была в том, чтобы учитывать только полностью правильное слово, окруженное пробелами. Я уже разобрался, сэнкс)
Обсуждают сегодня