Я ищу регулярное выражение для соответствия фракциям формата [0-9]\/[1-9]{1,2}
в данной строке.
Ниже приведен пример:
my_str = "This is a 1/2 1/4. Press 1/2/3. He drove a car for 1/2hour." # A free text
def replace_fractions(text):
fraction_dict = {
'1/2': 'half',
'1/4': 'quarter',
'3/4': 'three quarters',
'2/3': 'two thirds',
}
_tmp = ' '.join([fraction_dict.get(w, w).strip() for w in text.split()])
return _tmp
current_result = replace_fractions("This is a 1/2 1/4. Press 1/2/3. He drove a car for 1/2hour.")
current_result:
"This is a half 1/4. Press 1/2/3. He drove a car for 1/2hour."
Ожидаемый_результат:
"This is a half quarter. Press 1/2/3. He drove a car for half hour."
Понятно, что для обработки необходимо использовать регулярное выражение такие случаи, как 1/2/3
или 1/4.
или 1/2hour
.
Но этот [0-9]\/[1-9]{1,2}
соответствует всему. Что будет правильным регулярным выражением для обработки этих случаев.
Примечание : регулярное выражение должно обрабатывать только вышеуказанные случаи. Все крайние случаи могут быть проигнорированы (или будут отредактированы после комментариев экспертов)