擅长:python、mysql、java
<p>一般来说,你需要的是一个lexer生成器。它需要一堆正则表达式并将它们编译成识别器。”lex“如果你用的是C,它就可以工作了。我从来没有在Python中使用过lexer生成器,但似乎有几个可以选择。谷歌显示<a href="http://www.dabeaz.com/ply/" rel="nofollow noreferrer">PLY</a>、<a href="http://www.lava.net/~newsham/pyggy/" rel="nofollow noreferrer">PyGgy</a>和<a href="http://margolis-yateley.org.uk/python/various/index.php" rel="nofollow noreferrer">PyLexer</a>。</p>
<p>如果正则表达式在某种程度上彼此相似,则可以使用一些快捷方式。我们需要更多地了解您试图解决的最终问题,以便提出任何建议。可以共享一些示例正则表达式和一些示例数据吗?</p>
<p>另外,这里要处理多少个正则表达式?你确定天真的方法不会奏效吗?正如Rob Pike<a href="http://www.lysator.liu.se/c/pikestyle.html" rel="nofollow noreferrer">once said</a>,“当n很小,而n通常很小时,花哨的算法很慢。”除非你有成千上万的正则表达式,并且有成千上万的东西可以与它们匹配,而且这是一个用户正在等待你的交互式应用程序,否则你最好用简单的方法并在正则表达式之间循环。</p>