在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+,然后是空白。