标签: regex fparsec
使用像FParsec这样的库来使用.NET语言中的普通正则表达式解析文本有什么好处?
答案 0 :(得分:2)
FParsec可以识别(至少)context-free grammars,而正则表达式只能识别regular languages,至少不使用一些hacky扩展。
使用常规语言无法做到的一个例子是括号匹配,即跟踪开始和结束括号的数量,并确保它们匹配。
当然,您可以通过重复使用它们来使用正则表达式来模拟它,但是将行为嵌入到单个解析器中会非常清晰。