我有多个字符串,看起来像这样 product: green apples price: 2.0 country: france company: somecompany
。一些字符串可能有更少的字段。例如有些人缺少公司名称或国家等。我试图只提取价值,并跳过产品,价格,国家,公司。我试图创建多个正则表达式,它从每个字符串的左侧开始。使用正则表达式从python中的字符串中提取多个值
blah="product: green apples price: 2.0 country: france company: somecompany"
product_reg = re.compile(r'.*?\bproduct\b:(.*).*')
product_reg_strip = re.compile(r'(.*?)\s[a-z]:?')
product_full=re.findall(product_reg, blah)
prod=re.find(product_reg_strip, str(product_full))
print prod
price_reg = re.compile(r'.*?\bprice\b:(.*).*')
price_reg_strip = re.compile(r'(.*?)\s[a-z]:?')
price_full=re.findall(price_reg, blah)
price=re.find(price_reg_strip, str(price_full))
print price
但这不起作用。我该怎么做才能使这个正则表达式更健全?
价格是每个字符串中唯一的数值吗? –
你想要输出什么?在你的例子中,它是“绿色苹果2.0法国somecompany”吗? – tdelaney