gpt4 book ai didi

c# - 正则表达式在代码中查找变量

转载 作者:行者123 更新时间:2023-11-30 22:14:56 24 4
gpt4 key购买 nike

我正在创建一个程序,使用户能够创建某种脚本。我在运行时编译他的脚本然后执行。我正在做类似的事情:https://stackoverflow.com/a/4181855/637142

总而言之,长话短说,我必须替换所有以 $ 开头的变量。对于将使脚本编译的东西。 如果用户有以下行:

var x = ($MyArray[ 4 ].Size) + 3;

什么正则表达式可以让我选择 $MyArray[ 4 ].Size

如果用户在哪里写:

var x = $SomeVar;

在那种情况下,很容易找到 SomeVar 。我找不到以 $

开头的变量

编辑

我想我已经接近找到解决方案了。现在,我将 $ 替换为 Foo. 一词,换句话说,我替换了这一行:

var x = ($MyArray[ 4 ].Size) + 3;

对于

dynamic Foo; // then
var x = (Foo.MyArray[ 4 ].Size) + 3;

现在可以编译了,但我仍然需要找到 Foo.MyArray[ 4 ].Size

编辑2

我不是要创建一个编译器,我只需要替换一些变量(以 $ 开头的变量)而已;)

最佳答案

听起来您正在尝试使用正则表达式将脚本语言转换为另一种语言。正确地做到这一点需要的不仅仅是正则表达式所能管理的。

我强烈建议您使用现有的解析系统来为您管理脚本,因为他们会考虑许多此类外部因素并创建一种成熟的工作语言。例如,Lua 是一个常见的选择。

或者,您可能希望编写一个适当的解析器来处理将原始源代码转换为一棵树,然后可以遍历该树以生成结果代码。

关于c# - 正则表达式在代码中查找变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com