上一篇 | 下一篇

将正则表达式匹配的强大功能带给 SQL

发布: 2008-7-01 13:40 | 作者: admin | 来源: | 查看: 0次

将正则表达式匹配的强大功能带给 SQL

热 荐

【字体:小 大】

将正则表达式匹配的强大功能带给 SQL

作者:- 文章来源:- 点击数:1029 更新时间:2006-4-22

Knut Stolze

信息集成开发, IBM 德国

2003 年 9 月 在数据库中查找文本数据是应用程序中很常见的方案。本文描述了如何扩展 DB2 以将用于正则表达式匹配的公用库集成到 DB2 中,以使该任务变得容易和更高效。

请注意:在阅读本文之前,请先阅读 免责声明。

简介

在数据库中查找文本数据是应用程序中很常见的情形。有几种基于全文本的产品可用于 IBM® DB2® Universal Database™,包括 DB2 Text Information Extender 和 DB2 Net Search Extender。但是,DB2 Extenders® 不包括执行 正则表达式匹配的功能,该功能用来查找和替换字符串中的模式。本文描述了如何实现一个用户定义函数(UDF),该函数将普遍可用的正则表达式匹配库与 DB2 集成在一起。我们通过示例使用了 pcre 库(Perl 兼容的正则表达式),但也可以用任何其它库替换它。

本文中所提供的描述适用于 V7 和 V8 版本的 DB2 通用数据库的 Linux 版、UNIX® 版和 Windows® 版。

背景知识

本节描述了正则表达式是什么以及它们为什么有用。

正则表达式是什么?

正则表达式用于查找和替换字符串中的模式。正则表达式是用某种语法定义的,正则表达式引擎采用这种语法并将它与字符串进行比较。引擎返回字符串是否与语法匹配的指示;也即,该字符串是否包含能够从该语法派生的子串。此外,引擎还能够返回匹配的子串。术语“模式(pattern)”用来表示语法。

最基本的模式仅由单个字母组成。当与该模式进行比较时,包含这个字母的字符串就是一个“匹配”。例如,如果模式是“a”,则字符串“abcd”就是一个匹配,而字符串“xyz”则不是。正则表达式的强大功能来自于预定义的运算符(也称为元字符),它们可以用很小的空间来表示模式。根据“方言”和受支持的功能,可以使用不同的元字符。通常,其中的一些可用字符如下:

| — 二中择一 [ ] — 分组 * — 多次出现(也匹配零次出现) + — 多次出现(至少一次) ? — 随意的出现次数 \\\\ — 反斜杠

字号: | 推荐给好友

评分:0

我来说两句