使用像 FParsec 这样的库来解析文本比使用 .NET 语言中的纯正则表达式有什么优势?
FParsec 可以识别(至少)上下文无关的语法,而正则表达式只能识别常规语言,至少不使用一些笨拙的扩展。
常规语言无法做到的一个例子是括号匹配,即跟踪左括号和右括号的数量并确保它们匹配。
当然,您可以通过重复使用正则表达式来模拟它们,但是将行为嵌入到单个解析器中要干净得多。
使用像 FParsec 这样的库来解析文本比使用 .NET 语言中的纯正则表达式有什么优势?
FParsec 可以识别(至少)上下文无关的语法,而正则表达式只能识别常规语言,至少不使用一些笨拙的扩展。
常规语言无法做到的一个例子是括号匹配,即跟踪左括号和右括号的数量并确保它们匹配。
当然,您可以通过重复使用正则表达式来模拟它们,但是将行为嵌入到单个解析器中要干净得多。
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium