Я пытался научить себя Python и в настоящее время занимаюсь регулярными выражениями. Учебный текст, который я использовал, похоже, предназначен для обучения Perl или какому-то другому языку, отличному от Python, поэтому мне пришлось немного адаптировать выражения, чтобы они соответствовали Python. Однако я не очень опытен, и я столкнулся с проблемой, пытаясь заставить выражение работать.
Проблема заключается в поиске в тексте экземпляров цен, выраженных либо без десятичных знаков, 500 долларов, либо с десятичными знаками, 500,10 долларов.
Вот что рекомендует текст:
\$[0-9]+(\.[0-9][0-9])?
Воспроизводя текст, я использую этот код:
import re
inputstring = "$500.01"
result = re.findall( r'\$[0-9]+(\.[0-9][0-9])?', inputstring)
if result:
print(result)
else:
print("No match.")
Однако результат не 500,01 доллара, а скорее:
.01
Я нахожу это странным. Если я удалю круглые скобки и необязательную десятичную часть, все будет работать нормально. Итак, используя это:
\$[0-9]+\.[0-9][0-9]
Я получил:
$500.01
Как я могу заставить регулярное выражение возвращать значения с десятичными частями и без них?
Спасибо.