正则表达式示例应用程序 — 用户搜索
正则表达式示例应用程序 — 用户搜索
日期:2004 年 12 月 13 日 目录
简介 应用程序概述 所需软件 术语 配置应用程序 运行应用程序 示例应用程序文件 其他参考资料
简介
先决条件
要了解该示例应用程序,用户应掌握以下方面的知识:
技术概述
正则表达式使用标准化的语法约定指定要在字符串数据中搜索的模式。正则表达式可以指定复杂模式的字符序列。例如,以下正则表达式:
a(b|c)d 搜索模式:“a”,跟着“b”或“c”,然后跟着“d”。该正则表达式与“abd”和“acd”匹配。
除了与上面的例子一样指定字符字面表达式之外,Oracle 的正则表达式实施还支持 POSIX(可移植操作系统接口)字符类。这意味着您要查找的字符类型可以非常具体。POSIX 字符类必须包含在一个由方括号 ([]) 指示的字符列表中。例如,正则表达式 [[:space:]]匹配空格字符,而 [[:space:]]{1,} 匹配一个或多个连续的空格字符。 正则表达式提供了一种在一段文本中识别字符串各种模式的强大方法。使用范围包括从对字符串(如 'Oracle Database')的简单搜索到更复杂的提取所有 URL 的任务,再到诸如查找第二个字符是元音的所有单词的任务。SQL 和 PL/SQL 在 Oracle 数据库 10g 中支持正则表达式。您可以利用正则表达式 API 完成从简单搜索到复杂数据验证等任务。它们可以在 PROCEDURE、FUNCTION、TRIGGER、CURSOR 中使用,用于定义对表的约束等。
应用程序概述
此示例应用程序演示了如何使用正则表达式 API 来在 TRIGGER、PROCEDURE、CURSOR 中以及在 CHECK 条件中验证、搜索和提取信息。此示例应用程序使用各种模式来搜索和提取存储在数据库表中的用户信息(例如爱好和兴趣、位置信息等)。 EMAIL_CHECK 过程使用正则表达式 REGEXP_LIKE 函数验证用户电子邮件 ID。它仅接收格式为 abc123@xyz.com 的电子邮件 ID。该过程从插入新行或更新现有行时触发的 VALIDATEUSER 触发器中进行调用。该触发器还将对用户电话号码进行验证。可接受的电话号码格式是 123-123-1234。如果这些验证失败,则向用户显示相应的错误消息。 使用正则表达式的 CHECK_PASSWORD 约束还确保了 PASSWORD 域是字母数字型的。此外,这个例子还显示了正则表达式如何与游标一起使用。这些游标在 search.sql 文件中定义,该文件使用不同的正则表达式函数从 USERINFO 表中提取信息。
所需软件
以下是配置和运行此示例应用程序所需的软件。
术语
| 术语 |
定义 |
|
<SAMPLE_HOME>
|
该示例所解压缩在的目录
|
配置应用程序
- 解压缩下载的 RegExpUserSearch.zip 文件。将文件内容解压缩到
<SAMPLE_HOME> 目录中。 这将创建 RegExpSample 文件夹(包括所有的文件和文件夹)。
- 打开命令提示符,通过执行以下命令转至
<SAMPLE_HOME>/RegExpSample/src 文件夹:
cd <SAMPLE_HOME>/RegExpSample/src
- 打开 SQL 提示符。 以 SCOTT/TIGER 进行连接,然后从
<SAMPLE_HOME>/RegExpSample/src 文件夹中运行 config.sql 脚本。这将为该应用程序创建必要的数据库对象(表、触发器、过程)。 例如,
SQL>@config.sql
运行应用程序
按照以下步骤运行此应用程序。
- 从 SQL 命令提示符下运行 search.sql 文件。例如,
SQL>@search.sql 这将提示您从菜单输入您的选择。输入任意的整数值,例如 1、2 或 3。
- 运行 update.sql,观察 validateUser 触发器和 check_mail 过程的功能。
SQL>@update.sql 注意:编辑 update.sql,在电子邮件和电话域中输入该应用程序可以接受的值。
示例应用程序文件
本部分提供了示例应用程序文件及其说明的一个表格化列表。
| 目录 |
文件 |
说明 |
|
RegExpSample\doc
|
readme.html
|
本文件
|
|
RegExpSample\src
|
config.sql |
创建必要数据库对象的 SQL 文件 |
|
RegExpSample\src
|
search.sql
|
用于从表中搜索和提取信息 |
|
RegExpSample\src
|
update.sql
|
该文件用于更新表中的行 |
其他参考资料
请在此处输入您对该示例应用程序的意见。
|