提取值在Python中我可以做到以下几点:使用字符串方法格式()从字符串
who = "tim"
what = "cake"
print "{0} likes {1}".format(who, what)
产生“蒂姆喜欢蛋糕”。
但是,由于我需要使用正则表达式,反操作并不那么简单。我的意思是,解析一串已知结构并提取我知道它包含的部分,并将它们存储到我的变量中。 这种提取我的执行:
import re
expression = "([a-z]*) likes ([a-z]*)"
input_line = "tim likes cake"
who, what = re.search(expression, inputline).groups()
这对参数的少量不够整齐,但相比于我的“理想逆”的理念,以格式()这对我来说两个主要缺点:
- 提取的参数始终为字符串,需要将它们转换为带有额外行的浮点数。格式在内部处理所需的转换,从任何值到字符串。
- 我需要为输入和输出定义不同的模板,因为正规表达式格式为“([az] *)likes([az] *)”的输入模板不能重复用于数据的“导出” ,格式化功能。
所以,我的问题是,做这样的函数存在,因为我们把它们打印字符串,随后会自动解析字符串并获得价值相同的方式几乎相同的语法像
“{ 0}喜欢{1}”。提取物(谁,什么,input_line =‘蒂姆喜欢蛋糕’)
我知道我可以创建我的自定义‘提取’功能,表现为期望的,但我不希望如果已经有一个可用,就创建它。
那么...自然语言处理? –
我认为这简单得多,因为给出了模板语句并指定了要提取的信息。一种选择是在空间中分割,并提取模板中用转义字符标记的部分。但是,再次,我正在寻找现有的选择,而不是自己做。 – rmhleo