HSQLDB - 正则表达式


HSQLDB支持一些特殊符号用于基于正则表达式和REGEXP运算符的模式匹配操作。

以下是模式表,可与 REGEXP 运算符一起使用。

图案 模式匹配什么
^ 字符串的开头
$ 字符串结尾
任意单个字符
[...] 方括号之间列出的任何字符
[^...] 方括号中未列出的任何字符
p1|p2|p3 交替;匹配任何模式 p1、p2 或 p3
* 前一个元素的零个或多个实例
+ 前一元素的一个或多个实例
{n} 前一个元素的 n 个实例
{m,n} 前一个元素的 m 到 n 个实例

例子

让我们尝试不同的示例查询来满足我们的要求。看看下面给出的查询。

尝试此查询来查找姓名以“^A”开头的所有作者。

SELECT author FROM tcount_tbl WHERE REGEXP_MATCHES(author,'^A.*');

执行上述查询后,您将收到以下输出。

+-----------------+
|     author      |
+-----------------+
|     Abdul S     |
|    Ajith kumar  |
+-----------------+

尝试此查询来查找姓名以“ul$”结尾的所有作者。

SELECT author FROM tcount_tbl WHERE REGEXP_MATCHES(author,'.*ul$');

执行上述查询后,您将收到以下输出。

+-----------------+
|     author      |
+-----------------+
|    John Poul    |
+-----------------+

尝试此查询来查找姓名包含“th”的所有作者。

SELECT author FROM tcount_tbl WHERE REGEXP_MATCHES(author,'.*th.*');

执行上述查询后,您将收到以下输出。

+-----------------+
|     author      |
+-----------------+
|    Ajith kumar  | 
|     Abdul S     |
+-----------------+

尝试此查询来查找姓名以元音 (a、e、i、o、u) 开头的所有作者。

SELECT author FROM tcount_tbl WHERE REGEXP_MATCHES(author,'^[AEIOU].*');

执行上述查询后,您将收到以下输出。

+-----------------+
|     author      |
+-----------------+
|     Abdul S     |
|    Ajith kumar  |
+-----------------+