首页
学习
活动
专区
圈层
工具
发布

优化器
EN

Stack Overflow用户
提问于 2016-07-21 14:21:48
回答 1查看 71关注 0票数 0

有Flex REGEX优化器吗?有类似于perl模块的东西:

http://search.cpan.org/~rsavage/Regexp-Assemble-0.37/

但不幸的是,它不支持lex regex语法。我想做的就是拥有一个优化正则表达式的工具。

代码语言:javascript
复制
TOMA|TOMOV

代码语言:javascript
复制
TOM(A|OV)

先谢谢大家。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-21 17:14:26

真的没有必要这样做。Flex将正则表达式编译成一个确定的有限状态机(FSM),除了具有非常大的扫描定义的小缓存效果外,对于替换或重复操作符也不存在性能损失。

Flex不会最小化FSM,但这只会减少FSM表的大小,而不是词法分析的速度(除了上述缓存效果(如果适用的话)。

即使FSM没有最小化,NFA到DFA转换过程也将执行您建议的特定转换。因此,以下两条规则产生完全相同的词法分析器:

  1. 托马·托莫夫( /* )做点什么*/ }
  2. /*做某事*/ }

虽然没有真正的性能损失,但是您应该避免以下情况,这不必要地重复了操作代码:

  1. TOMA { /*做某事*/ } TOMOV { /*做同样的事情*/ }

您可能还会发现this question中的讨论很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38506830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档