- 类别:
REGEXP_LIKE¶
执行比较以确定字符串是否与指定模式相匹配。两个输入都必须是文本表达式。
REGEXP_LIKE 与 [ NOT ] LIKE 函数类似,但使用 POSIX 扩展的正则表达式而不是 SQL LIKE 模式语法。它支持比 LIKE 更复杂的匹配条件。
小技巧
您可以使用搜索优化服务,提高用于调用此函数的查询的性能。有关详细信息,请参阅 搜索优化服务。
- 别名:
:doc:`rlike`(第 1 种语法)
另请参阅:字符串函数(正则表达式)
语法¶
REGEXP_LIKE( <subject> , <pattern> [ , <parameters> ] )
实参¶
必填:
subject
以匹配为准。
pattern
要匹配的模式。
可选:
parameters
包含一个或多个字符的字符串,指定用于搜索匹配项的参数。支持的值:
c
、i
、m
、e
、s
有关更多详细信息,请参阅 为正则表达式指定参数。
默认:
c
返回¶
返回 BOOLEAN 或 NULL。如果存在匹配项,则值为 TRUE。否则返回 FALSE。如果任何实参为 NULL,则返回 NULL。
使用说明¶
该函数在两端隐式锚定一个模式(即
''
自动变为'^$'
,并且'ABC'
自动变为'^ABC$'
)。要匹配任何以 ABC 开头的字符串,模式将是'ABC.*'
。反斜杠字符 (
\
) 是转义字符。有关更多信息,请参阅 在以单引号括起的字符串常量中指定正则表达式。有关更多用法说明,请参阅 一般使用说明 了解正则表达式函数。
排序规则详细信息¶
Arguments with collation specifications are currently not supported.
示例¶
创建一个包含城市名称的表:
CREATE OR REPLACE TABLE cities(city varchar(20)); INSERT INTO cities VALUES ('Sacramento'), ('San Francisco'), ('San Jose'), (null);
使用通配符执行区分大小写的查询:
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*');+------+ | CITY | |------| +------+
使用通配符执行不区分大小写的查询:
SELECT * FROM cities WHERE REGEXP_LIKE(city, 'san.*', 'i');+---------------+ | CITY | |---------------| | San Francisco | | San Jose | +---------------+
有关正则表达式的其他示例,请参阅 [ NOT ] REGEXP。
要搜索通配符,您需要转义通配符。有关通配符的详细信息,请参阅 在以单引号括起的字符串常量中指定正则表达式。