我已经实现了用于模式搜索的trie,并且工作正常。使用这个trie我可以找到所有在O(n)复杂文本中呈现的关键字。如何确定正则表达式中的子字符串?
问题是我想为我的模式(关键字)使用正则表达式,并希望找到文本中存在的所有关键字。
例如: 我写[a-z0-9 \。] {6,30} \ @ [a-z0-9 \。] {2,12} \。[a-z0-9] { 2,6}找到电子邮件ID,它会提取我正确的东西,但它不会找到第一或第二块下的子字符串。
例如我有文字为。 [email protected]
和关键字:ample mail
在这个例子中这个表达式会告诉我的电子邮件ID的结束位置,但它不会告诉任何关于ample
或mail
关键字。
编辑:假设我有正则表达式为一个*(?C | CD)+ 和DFA会是什么样子::
,现在我有一个像dfdfdacbcbbcb数据在这个数据它会告诉我在达到ac等在每个字符后的模式,但我怎么才能知道结束模式的长度?
您使用哪种语言? – 2014-09-24 10:06:49
基本上我使用C但我不要求使用正则表达式库。我正在创建一个基于正则表达式的特里克斯考虑他们作为关键字... – 2014-09-24 10:08:54