在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()
这对于少量参数来说已经足够简洁了,但是与我的“理想逆”到format()的想法相比,它有两个主要缺点:
所以,我的问题是,是否存在这样一个函数,它会自动解析字符串,并以打印到字符串的相同方式获取值,遵循几乎相同的语法,如
{0}喜欢{1}.extract(谁,什么,输入_line=“tim喜欢蛋糕”)
我知道我可以创建自己的自定义“extract”函数,该函数的行为符合要求,但如果已经有可用的函数,我不想创建它。你知道吗
这是因为你确切地知道谁和什么在字符串中。如果是这样的话,你就不需要正则表达式了。字符串是字符列表:)
事实上,任何比这更复杂的事情都是自然语言处理,这将超出我的范围。你知道吗
除了拆分字符串和强制转换组件或使用
re
之外,似乎没有内置的解决方案。你知道吗这有点奇怪,因为格式可以用来指定输入的类型:
"{0:03d}_{1:f}".format(12, 1)
给出了'012_3.000000'
,所以我不确定为什么没有"012_3.000000".extract("{0:03d}_{1:f}", [a, b])
,但是。。也许只有来自C的人才会想要这样的东西。你知道吗在任何情况下,您可能会发现parse module有用,正如this答案中所建议的那样。你知道吗
有个主意。你知道吗
不过,看起来很乱
相关问题 更多 >
编程相关推荐