dav*_*vka 4 c++ algorithm string-matching text-search
我需要搜索传入的非常长的文本片段以查找给定字符串的出现次数.字符串对于整个会话是不变的并且不是很多(~10).另外的简化是没有任何字符串包含在任何其他字符串中.
我目前正在使用boost正则表达式匹配str1 | str2 | ....这项任务的执行很重要,所以我想知道我是否可以改进它.并不是说我可以比推特人更好地编程,但也许专用实现比普通实现更有效.
由于字符串长时间保持不变,我可以预先建立一个数据结构,如状态转换表.
例如,如果字符串是abcx,bcy而且cz,到目前为止abc,我已经阅读过,那么我应该处于合并状态you're either 3 chars into string 1, 2 chars into string 2 or 1 char into string 1.然后阅读x下一个会将我移动到string 1 matched状态等,除了xyz将移动到初始状态之外的任何其他字符,我将不需要缩回b.
任何想法或参考表示赞赏.