这是交易。有没有办法根据多个正则表达式在一行中对字符串进行标记化?
一个例子:
我必须获取所有 href 标签、它们对应的文本以及基于不同正则表达式的一些其他文本。 所以我有 3 个表达式,想标记行并提取与每个表达式匹配的文本标记。
我实际上已经使用 flex(不要与 Adobe 混淆)完成了这项工作,它是旧 lex 的一个实现。 lex 提供 通过基于表达式执行“ Action ”来实现这一点的优雅方式。一个可以控制的方式 lex 也读取文件(基于 block /行的读取)。
问题在于 flex 实际上生成的 C/C++ 代码实际上执行标记化工作。我有一个 制作包含所有这些东西的文件。 我想知道 perl/python 是否可以以某种方式做同样的事情。只是我什么都愿意做 我喜欢单一的编程语言本身。
标记化只是我想在我的应用程序中做的事情之一。
除了 perl 或 python 之外,任何语言(也可以是函数式语言)都可以做到这一点吗?
我确实在这里读到了 PLY 和 ANTLR (Parsing, where can I learn about it)。
但是有没有办法在 python 本身中自然地做到这一点?请原谅我的无知,但这些工具是否用于任何流行的产品/服务?
谢谢。
最佳答案
关于python - 在 Perl 或 Python 中模拟类似 lex 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/160889/