我正在尝试为我的服务编写一个迷你类型的脚本语言,并且我一直试图从某行中的某些字符串中提取数据。例如:使用RegularExpressions解析并执行方法
!d3 Profile: {D3Api("Name")}
!weather Current Weather {Weather("Location")}
与我当前的代码工作,我似乎无法得到它找到我要找的文本。如果该行包含说{D3Api()}
或{Weather()}
的权利,我大概可以做一个if
声明?无论如何,这是我对在查找文本{D3Api()}和检索文字表达:
它不解析或返回文本。我该如何改进?
我的设计很差的解析代码:
public static void Main(string[] args) {
string t = "{D3Api(\"Name\")";
String text = "(\\{D3Api\\(\"(.*?)\"\\)\\})";
Regex r = new Regex(text, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Console.WriteLine("Parsing..\n\r");
Match m = r.Match(t);
if (m.Success) {
string c = m.Groups[1].ToString();
string s = m.Groups[2].ToString();
Console.Write("(" + c.ToString() + ")" + "(" + s.ToString() + ")" + "\n");
}
Console.ReadLine();
}
这就是我一直在寻找的东西,EBNF似乎是我想要完成的最合适的!谢谢! – 2014-10-18 19:03:23