|
|
1
3
我不能百分之百肯定地回答你的问题,但我可以给你一个意见。 我发现使用正确语法的选择与手工滚动的regex“parsers”相比,常常归结为输入的一致性。 如果输入非常统一,并且您已经知道一种处理字符串的语言,比如Python或Perl,那么我将保留您现有的代码。 另一方面,我发现解析器生成器,如antlr,在输入中可能有错误和不一致时,确实会发光。原因是形式语法允许您专注于在特定上下文中应该匹配的内容,而不必担心手动遍历输入流。 此外,如果输入流有一个错误,那么我发现使用antlr和regexs处理它们通常更容易。原因是,如果有两个选项可用,那么antlr就具有承载正确路径的内置功能,包括通过谓词回滚。 说了这么多之后,工作代码就没有什么可说的了。我发现如果我想重写一些东西,那么我会努力为重写如何对产品的用户有利做一个好的用例。 |