腾讯云数据仓库 TCHouse-X 正则表达式函数

like(string, pattern[, escape]) -> boolean。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:适用版本:TCHouse-X 内核版本 2.0.0及以上版本。

三、功能说明

评估字符串是否与给定的模式(Pattern)匹配。模式可以包含普通字符和通配符。

·%:匹配 0 个、1 个或多个字符。

·_:匹配单个字符。

·escape:可选,指定一个 ASCII 字符用于转义通配符。

·匹配规则:区分大小写。

四、性能说明

·缓存机制:每个执行线程最多允许编译 100 个正则表达式。

·优化策略:简单模式如 hello、hello%、%hello%、_hello_ 等将直接评估,不计入正则编译限制。只有复杂模式才会触发正则编译。

五、示例

SELECT like('abc', '%b%'); — trueSELECT like('a_c', '%#_%', '#'); — true (使用 # 转义 _)

七、语法

rlike(string, pattern) -> boolean

八、功能说明

基于正则表达式模式进行匹配。

·包含匹配:与 like 不同,rlike 只需模式包含在字符串内即可返回 true(无需匹配整个字符串)。

·锚定:若需完全匹配,请使用 ^ 和 $ 锚定符。

·限制:pattern 必须为常量字符串,不支持列引用。

九、示例

SELECT rlike('1a 2b 14m', '\\d+b'); — true

十一、语法

·regexp_extract(string, pattern) -> varchar

·regexp_extract(string, pattern, group) -> varchar

十二、功能说明

在字符串中查找正则表达式的第一次出现。

·无 group 参数:返回第一个完整匹配的子串。

·带 group 参数:返回指定捕获组(Capture Group)编号的内容。

·限制:pattern 必须为常量字符串,不支持列引用。

十三、示例

SELECT regexp_extract('1a 2b 14m', '\\d+'); — '1'SELECT regexp_extract('1a 2b 14m', '(\\d+)([a-z]+)', 2); — 'a'

十五、语法

·regexp_replace(string, pattern, overwrite) -> varchar

·regexp_replace(string, pattern, overwrite, position) -> varchar

十六、功能说明

将字符串中匹配正则表达式的部分替换为 overwrite 字符串。

十七、替换逻辑

·支持捕获组引用:使用 $g 或 ${g} 引用编号组,使用 ${name} 引用命名组。

·转义符:使用 \\$ 表示原义美元符号。若 \\ 后紧跟非数字或非反斜杠字符,则忽略该 \\。

十八、参数说明

·string:源字符串。

·pattern:正则表达式。

·overwrite:替换后的内容。

·position:可选,起始搜索位置(从 1 开始)。若 position 大于字符串长度,返回原字符串;小于 1 则抛出异常。

十九、限制说明

编译限制:单次函数调用中唯一正则表达式的编译上限为 20 个,超过将抛出异常。

20、示例

— 基础替换SELECT regexp_replace('Hello, World!', 'l', 'L'); — 'HeLLo, WorLd!'– 捕获组替换SELECT regexp_replace('300-300', '(\\\\d+)-(\\\\d+)', '400'); — '400'– 指定起始位置SELECT regexp_replace('Hello, World!', 'l', 'L', 6); — 'Hello, WorLd!' (从位置6开始替换)SELECT regexp_replace('Hello, World!', 'l', 'L', 5); — 'Hello, World!' (o之后没有l,不匹配)

赞 (0)
上一篇 4天前
下一篇 4天前