我有以下字符串:
"{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为表达式.直接申请ToExpression只给出最后一个,即{f[{x, 1 + y}]}.如何获得整个列表?
您可以查看文档ToExpression以查找其第三个参数,并使用
ToExpression["{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}", InputForm, Hold]
Run Code Online (Sandbox Code Playgroud)
防止评估.
转换表达式或提取部分(Extract,Level等)的几个函数可以选择将提取的部分包装在任意函数中.常见的用途是将它们包裹起来Hold,以防止评估.
编辑: 请注意,您的表达式不是列表.这是一个CompoundExpression.你可能正在寻找
ToExpression["{f[{-1 + x, y}]; f[{1 + x, y}]; f[{x, 1 + y}]}", InputForm, Hold] /. CompoundExpression -> List // ReleaseHold
Run Code Online (Sandbox Code Playgroud)
你能解释一下你想要实现的目标以及从哪里获得字符串吗?