2014-02-10 96 views
1

使用像FParsec這樣的庫來解析使用.NET語言中的純正則表達式的文本的優點是什麼?Fparsec vs正則表達式

+0

爲什麼這是關閉的主要是基於意見的? FParsec(靈活性,性能等)或者沒有(在這種情況下答案是:沒有客觀的優勢)有客觀的優勢。 –

回答

2

FParsec可以識別(至少)context-free grammars而正則表達式只能識別regular languages,至少在不使用有點冒險的擴展。

你不能用常規語言做的事情的一個例子是括號匹配,即跟蹤打開和關閉括號的數量並確保它們匹配。

當然,您可以通過重複使用它們來使用正則表達式來模擬此操作,但將行爲嵌入到單個分析器中會顯着更清晰。

+0

FParsec也會生成錯誤消息,並且如果您遵循某些準則(http://www.quanttec.com/fparsec/users-guide/performance-optimizations.html),FParsec解析器可能會更快...... –