这是交易。有没有办法根据多个正则表达式在一行中对字符串进行标记?
一个例子:
我必须根据不同的正则表达式获取所有 href 标记、它们对应的文本和其他一些文本。所以我有 3 个表达式,并且想对行进行标记并提取与每个表达式匹配的文本标记。
我实际上是使用 flex 完成的(不要与 Adobe 混淆),它是旧 lex 的一个实现。lex 通过基于表达式执行“动作”提供了一种优雅的方式来做到这一点。也可以控制 lex 读取文件的方式(基于块/行的读取)。
问题是 flex 实际上生成了实际执行标记化工作的 C/C++ 代码。我有一个包含所有这些东西的 make 文件。我想知道 perl /python 是否可以以某种方式做同样的事情。只是我想用一种编程语言本身做我喜欢的一切。
标记化只是我想要在我的应用程序中做的事情之一。
除了 perl 或 python 之外,任何语言(也可以是函数式)都可以做到这一点吗?
我确实在这里阅读了 PLY 和 ANTLR(解析,我在哪里可以了解它)。
但是有没有办法在 python 本身中自然地做到这一点?请原谅我的无知,但这些工具是否用于任何流行的产品/服务?
谢谢你。