在Python中使用正则表达式将bn替换为十亿,将Mn替换为百万

在Python中使用正则表达式将bn替换为十亿,将Mn替换为百万,python,regex,python-3.x,Python,Regex,Python 3.x,我有一句话: Input1: "Deal to invest $1000 mn in market." Input2: "Deal to invest $1000mn in market." Input3: "Deal to invest $ 1000mn in market." 每次出现mn,bn$时,应使用全名替换: Expected Output: "Deal to invest 1000 Million Dollar in market." 我在这个链接中尝试了以下答案: 您可以

我有一句话:

Input1: "Deal to invest $1000 mn in market." 
Input2: "Deal to invest $1000mn in market."
Input3: "Deal to invest $ 1000mn in market."
每次出现mn,bn$时,应使用全名替换:

Expected Output:  "Deal to invest 1000 Million Dollar in market."
我在这个链接中尝试了以下答案:
您可以借助字典:

import re

mbt_d = {
    "mn": "Million",
    "bn": "Billion",
    "tn": "Trillion",
    #include your needs.
}

dol_d = {
    "$": "dollar",
    #include your needs.
}

inputs = [
    "Deal to invest $1000 mn in market.",
    "Deal to invest $10bn in market.",
    "Deal to invest $ 1tn in market."
]

for s in inputs:
    res = re.findall(r"([£$€]\s?)(\d+)(\s?[mbt]n)", s)[0]
    s = s.replace(res[0], "")
    print(s.replace(
        res[2], " {} {}".format(mbt_d[res[2].strip()], dol_d[res[0].strip()])
    ))

out: Deal to invest 1000 Million dollar in market.
     Deal to invest 1000 Billion dollar in market.
     Deal to invest 1000 Trillion dollar in market.

Rahul,你为什么不花点时间看看我试过的链接。放-1很容易。令人失望。可能还要检查[mbt]n之后的空格!然后是\w+,然后是空白。