【发布时间】:2013-04-05 00:37:56
【问题描述】:
我正在尝试解释字符串命令以运行相关脚本。这是我目前所拥有的:
// A typical command that can come from a TextBox control
string command = "Create";
// Remove all white space
command = System.Text.RegularExpressions.Regex.Replace(command, @"\s", "");
// Make case insesitive by converting to lowercase
command = command.ToLower();
switch (command)
{
case "create": /* Run create script*/ break;
case "delete": /* Run delete script*/ break;
// etc.
}
在我引入与特定命令相关的参数之前,这很好用。
我认为这可以用圆括号表示,因此更复杂的命令如下所示:
string command = "Create(paramA, paramB, etc.)"
假设我使用这种方法走在正确的道路上,那么检测和解释参数的好方法是什么?
命令的规则是:
'(' ')' 打开和关闭参数集 ',' 分隔每个参数
换句话说,如何检测参数的开头和结尾并正确分隔每个参数?
另一个问题当然是将命令本身与参数分开。
我考虑过使用:
command.StartsWith("create"); // etc.
但这在 switch case 条件结构中不起作用。
【问题讨论】:
-
你可以使用大量的字符串魔法,这是可能的,但需要努力。或者您可以查看现有的解析框架,例如 Sprache:github.com/sprache/sprache
-
解析。那是我正在寻找的关键字。我将更新问题的标题。谢谢。
标签: c# string parsing scripting