设计一个简单的状态机生成器
我知道为正则表达式设计状态机生成器并不简单,但是简单的字符串又如何呢(当我说简单的字符串时,我的意思是像“abcd”这样的东西——没有任何正则表达式语法的东西)。我正在考虑使用状态机编写一个简单的字符串匹配器,但我希望在运行时生成状态机。
状态机生成器的输入是要匹配的字符串,输出是状态机。我不是在寻找代码,而是寻找执行此操作的方法/算法。
是的,我可以使用任何现成的库,但不用了,谢谢。
I know that designing state machine generators for regular expressions is not trivial, but what about simple strings (when I say a simple string, I mean something like "abcd" -- something without any regular expression syntax). I was thinking of writing a simple string matcher using state machines, but I wanted the state machine to be generated at runtime
The input to the state machine generator is the string to be matched, the output is the state machine. I am not looking for code, but a method/algorithm to do this.
Yes, I could use any of the readily available libraries, but no thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您想要一个非常简单的匹配器,您甚至不需要构建状态机。您可以像在字符串中前进一样在模式中前进。这是《美丽的代码》一书中的一个非常好的示例:
http://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
If you want a really simple matcher, you don't even need to build the state machine. You can just march through the pattern as you march through the string. Here is a really nice example from the book called, "Beautiful Code":
http://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html