如何实现Regex

时间:2012-10-01 11:09:53

标签: c++ regex

我正在研究数据库服务器软件产品(请参阅我的个人资料),我们发现需要在我们的软件中实现自由文本搜索。我们使用的查询语言标准仅支持使用BT类型Regex的自由文本搜索。我们可以将自由文本数据库索引与Regex一起使用的唯一方法似乎是实现我们自己的。我对SO的问题是:

  • 我在哪里可以找到有关如何实施BT风格的正则表达式的论文/示例/模式?

  • 是否值得考虑使用其中一个开源C / C ++ Regex库并更改代码以满足我们的需求?

2 个答案:

答案 0 :(得分:2)

如果我没错,SPARQL使用基于PERL正则表达式的XPath / XQuery正则表达式语法(至少这是W3C文档所说的)

如果情况确实如此,那么您可以使用http://www.pcre.org/

中的PCRE

它被许可为BSD,因此您可以在商业产品中使用它

如果您的语法略有修改,您可以编写一个小例程来将其规范化为PCRE使用的PERL语法

答案 1 :(得分:0)

我在网上找到关于REGEX索引的主题有两篇论文;一个来自贝尔实验室,一个来自加州大学洛杉矶分校/ IBM。我仍然不确定是否要使用现有的Regex库并对其进行修改或从头开始编写。