Нам нужно написать регулярное выражение для захвата сообщений, состоящих из
- Сокращение валюты ("USD", "CAD" или "GBP")
- Ровно один пробел
- Неотрицательное значение в формате, описанном ниже
Например:
"GBP 1,123" should not match(too many spaces)
"GBP 1,123,412" should match
"USD 0.10" should match
"CAD 10.12333" should not match as fractional part too long
"USD 012.12" should not match (redundant leading zero)
"USD 10q" should not match (redundant characters at the end)
"qUSD 10" should not match (redundant characters at the beginning)
"ABC 10" should not match (wrong currency)
"CAD 10" should match
"CAD 10.00" should match
Значение может быть целым числом (например, 10) или может иметь дробная часть, в этом случае мы разрешаем ровно две цифры после точки (например, 0.10). Кроме того, целочисленная часть должна быть в удобном формате: начиная с конца, каждая группа из трех цифр должна быть разделена запятой (например, 1,123,412). Начальные нули в целочисленной части недопустимы.
Регулярное выражение будет оцениваться с использованием re.search python. Можно предположить, что регулярное выражение не содержит новых строк
Я написал решение как re.search(r'^(USD|CAD|GBP)\s[0-9]+(\.[0-9][0-9]?)?)
Но тесты для некоторых не проходят. Можете ли вы сообщить мне, где я сделал ошибку и исправить ее