注意:说明:
注意:适用版本: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,不匹配)