【问题标题】:Extract variable names from the string expression using regex in python [closed]在python中使用正则表达式从字符串表达式中提取变量名[关闭]
【发布时间】:2016-12-08 11:33:49
【问题描述】:

我在字符串中有一个代数表达式。我想从表达式中提取变量名。变量名应遵循 python 变量命名规则。 (应该是字母或数字的组合,不能以数字开头,可以有下划线等)

示例:

formula = 'value1 * 5 + value_2 /4'

它应该给出['value1', 'value_2']的结果

【问题讨论】:

  • ([a-zA-Z])\w+ 这给了我迄今为止最好的匹配。但忽略了一些变量
  • 请问有什么目的?
  • homework?贴你的代码

标签: python regex string formula algebra


【解决方案1】:

如果可能的话,我会使用解析 Python 代码本身的 ast 模块,而不是正则表达式。这意味着您不必担心字符串文字/其他内容,如果解析失败,您将收到一个错误,这意味着它是一个不完整或无效的语句:

import ast

formula = 'value1 * 5 + value_2 /4'
names = [
    node.id for node in ast.walk(ast.parse(formula)) 
    if isinstance(node, ast.Name)
]
# ['value1', 'value_2']

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    相关资源
    最近更新 更多