我正在嘗試爲我的服務編寫一個迷你類型的腳本語言,並且我一直試圖從某行中的某些字符串中提取數據。例如:使用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