import re
from num2words import num2words
def replace_ordinal_numbers(text):
re_results = re.findall('(\d+(st|nd|rd|th))', text)
for enitre_result, suffix in re_results:
num = int(enitre_result[:-2])
text = text.replace(enitre_result, num2words(num, ordinal=True))
return text
def replace_numbers(text):
re_results = re.findall('\d+', text)
for term in re_results:
num = int(term)
text = text.replace(term, num2words(num))
return text
def convert_numbers(text):
text = replace_ordinal_numbers(text)
text = replace_numbers(text)
return text
if __name__ == '__main__':
assert convert_numbers('523rd') == 'five hundred and twenty-third'
从字符串中删除序数结尾:
然后使用
^{pr2}$使用
num2words
,您应该使用ordinal=True
来获得所需的输出,如其documentation所述:印刷品:
^{pr2}$整个解决方案
相关问题 更多 >
编程相关推荐