Python 提取表达式
我有一个表达式,我想在Python2.6中提取它。以下是一个例子:Python 提取表达式,python,regex,expression,extract,text-extraction,Python,Regex,Expression,Extract,Text Extraction,我有一个表达式,我想在Python2.6中提取它。以下是一个例子: [a]+[c]*0.6/[b]-([a]-[f]*0.9) 这将是: ( '[a]', '+', '[c]', '*', '0.6', '/', '[b]', '-', '(', '[a]', '-', '[f]', '*', '0.9', ')', ) 我需要一份清单。请帮我一把。谢谢。一种方法是创建一个正则表达式列表来匹配每个标记,例如: >>>
[a]+[c]*0.6/[b]-([a]-[f]*0.9)
这将是:
(
'[a]',
'+',
'[c]',
'*',
'0.6',
'/',
'[b]',
'-',
'(',
'[a]',
'-',
'[f]',
'*',
'0.9',
')',
)
我需要一份清单。请帮我一把。谢谢。一种方法是创建一个正则表达式列表来匹配每个标记,例如:
>>> import re
>>> expr = '[a]+[c]*0.6/[b]-([a]-[f]*0.9)'
>>> re.findall('(?:\[.*?\])|(?:\d+\.*\d*)|.', expr)
['[a]', '+', '[c]', '*', '0.6', '/', '[b]', '-', '(', '[a]', '-', '[f]', '*', '0.9', ')']
import re
tokens = [r'\[.?\]', r'\(', r'\)', r'\+', r'\*', r'\-', r'/', r'\d+?.\d+', r'\d+']
regex = re.compile('|'.join(tokens))
然后可以在表达式上使用findall
返回匹配项列表:
>>> regex.findall('[a]+[c]*0.6/[b]-([a]-[f]*0.9)')
<<<
['[a]',
'+',
'[c]',
'*',
'0.6',
'/',
'[b]',
'-',
'(',
'[a]',
'-',
'[f]',
'*',
'0.9',
')']
>>regex.findall('[a]+[c]*0.6/[b]-[a]-[f]*0.9'))
你是在做计算器还是什么?不是计算。我需要像示例一样提取它。。。。一旦你提取了它,你会做什么呢?我是python新手。我有一个退格按钮,当它点击时,我需要删除列表的最后一个元素/我将通过堆栈使用它。/。我认为这是一种非常简单的方法。mylist.pop()
将删除列表中的最后一个元素。