繁体   English   中英

表示DFA的数据结构

[英]Data Structure to represent a DFA

我想知道,代表DFA的最佳数据结构是什么?

我正在寻找将正则表达式转换为DFA,并使此特定功能成为Java库的功能。

最主要的是,正则表达式中的每个实体都带有一组值,而不是像“ car”这样的单个字符串值。 以我为例,每个实体都将具有{car,Honda,4x4,sedan,...}之类的许多属性(尽管我不是在搜索汽车,但这仅是示例。)

有什么建议么?

网络搜索将提供Java中DFA的一些示例。 但是,最好的表示方式取决于您的特定应用程序要求。 例如,您的应用程序将如何使用DFA。 我认为您需要自己解决这个问题。

如果我正确理解了您的问题,您是否想为具有动态类型的字母上的任意常规语言提供匹配/过滤库? 以您的汽车示例为例,我想您希望能够创建一个表达式以匹配一个列表,该列表中所有汽车(颜色为红色,乘客数为2至6名,每名乘客为8至6名) 88岁)或(有1位乘客)。

碰巧的是,我一直在寻找自己想要的东西(用于文档验证),而我能找到的最接近的是Jing Java RELAX-NG库。 不幸的是,Jing中的字母由XML节点组成,因此无法解决我的问题。 目前,我正在尝试自己编写一个库,该库基于Jing中的模式匹配来做到这一点(通过任意类型的字母与常规语言匹配)。 如果您想提供帮助,请告诉我;)。

我确信由于数据的缘故,这个答案对原始问题不会有用,但是如果有人从Google那里碰到这个问题的话...

DFA和NFA可以存储为State转换表的 ,然后通过在链接之后移动该表来执行解析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM