我有下面这句话:“饭盒的大小在1.5升或1500毫升左右”
如何将其更改为:“饭盒的容量在1.5升或1500毫升左右”
在某些情况下,该值也可能显示为“1.5 l或1500 ml”,并带有空格。
当我试图构建一个函数时,我无法捕获“l”或“ml”,或者它给了我一个转义错误。
我试过:
def stnd(text):
text = re.sub('^l%',' liter', text)
text = re.sub('^ml%',' milliliter', text)
text = re.sub('^\d+\.\d+\s*l$','^\d+\.\d+\s*liter$', text)
text = re.sub('^^\d+\.\d+\s*ml$%','^\d+\.\d+\s*milliliter$', text)
return text
2条答案
按热度按时间qzwqbdag1#
您可以使用dict列出所有单位作为键,并使用模式查找后跟
ml
或l
的数字,然后您可以将其用作dict的键以获取值。模式匹配:
(?<=\d)
正向后看,向左置位一个数字m?l\b
匹配可选的m
,后跟b和单词边界参见regex demo。
示例
产出
t1rydlwq2#
我们可以使用查找值和替换的字典来处理这个替换。