Можем ли мы заменить букву от целого до английского в документе Python - PullRequest
0 голосов
/ 25 октября 2019

У меня есть документ, и он содержит цифры между ними. Можно ли заменить все цифры на английский эквивалент?

Например:

My age is 10. I am in my 7th grade.

Ожидается-о / п:

My age is Ten and I am in my seventh grade.

Заранее спасибо

1 Ответ

1 голос
/ 25 октября 2019

Вы захотите взглянуть на num2words .

Вам нужно будет создать регулярное выражение, чтобы поймать числа, которые вы хотите заменить, и передать их в num2words. На основании предоставленного примера вам также может понадобиться флаг ordinal.

import re
from num2words import num2words

# this is just an example NOT ready to use code

text = "My age is 10. I am in my 7th grade."
to_replace = set(re.findall('\d+', text))         # find numbers to replace
longest = sorted(to_replace, key=len, reverse=True)  # sort so longest are replaced first
for m in longest:
  n = int(m)                       # convert from string to number
  result = num2words(n)            # generate text representation
  text = re.sub(m, result, text)          # substitute in the text
print(text)

, отредактированный для отражения того, что OP хочет перехватить все цифры

...