我在ASP.NET/C#寫一個CMS,我需要處理這樣的事情,每一個頁面請求:ANTLR還是正則表達式?
<html>
<head>
<title>[Title]</title>
</head>
<body>
<form action="[Action]" method="get">
[TextBox Name="Email", Background=Red]
[Button Type="Submit"]
</form>
</body>
</html>
和替換過程中的[...]。
我的問題是我應該如何使用ANTLR或正則表達式來實現它?什麼會更快?請注意,如果我使用ANTLR實現它,我認爲我需要實現XML,並插入[..]。
我將需要實現參數等
編輯:請注意,我正則表達式甚至可以像這樣的事情:
public override string ToString()
{
return Regex.Replace(Input, @"\[
\s*(?<name>\w+)\s*
(?<parameter>
[\s,]*
(?<paramName>\w+)
\s*
=
\s*
(
(?<paramValue>\w+)
|
(""(?<paramValue>[^""]*)"")
)
)*
\]", (match) =>
{
...
}, RegexOptions.IgnorePatternWhitespace);
}
我承認它......我從來沒有聽說過ANTLR ......更不用說知道哪個更好用了。 Googlefoo的時間。 – Nick 2010-03-05 14:23:31
ANTLR是一個解析器/詞法分析器/語法工具包。它用於生成可以分析其他文本來源並提取或翻譯數據的源文件。 它通常用於開發編譯器等。 – Pindatjuh 2010-03-05 14:27:57