oracle 中REGEXP_SUBSTR的用法
I'll search for information about the usage of REGEXP_SUBSTR in Oracle.
Search
Oracle REGEXP_SUBSTR function usage examples 36 results
Oracle 中
REGEXP_SUBSTR 函数用于通过正则表达式从字符串中提取子串。其语法如下:sql
Copy
REGEXP_SUBSTR(
source_string, -- 源字符串
pattern, -- 正则表达式模式
position, -- 起始位置(可选,默认为 1)
occurrence, -- 匹配第几次出现的子串(可选,默认为 1)
match_parameter, -- 匹配参数(可选,如 'i' 表示忽略大小写)
subexpr -- 返回第几个子表达式(可选,0-9)
)示例说明
1. 提取邮箱地址
sql
Copy
SELECT
REGEXP_SUBSTR('Contact us at [email protected] for help.',
'[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}') AS Email
FROM DUAL;
-- 结果:[email protected]2. 提取括号内的内容
sql
Copy
SELECT
REGEXP_SUBSTR('Order #123 (SKU: 45A-B)',
'\(([^)]+)\)', 1, 1, NULL, 1) AS SKU
FROM DUAL;
-- 结果:SKU: 45A-B3. 提取数字
sql
Copy
-- 提取第一个数字
SELECT REGEXP_SUBSTR('Oracle 23ai', '\d+') FROM DUAL;
-- 结果:23
-- 提取第二个数字
SELECT REGEXP_SUBSTR('Oracle 23ai in 2024', '\d+', 1, 2) FROM DUAL;
-- 结果:20244. 提取逗号之间的内容
sql
Copy
SELECT
REGEXP_SUBSTR('500 Oracle Parkway, Redwood Shores, CA',
',[^,]+,') AS Result
FROM DUAL;
-- 结果:, Redwood Shores,参数说明
position:从哪个字符开始搜索,默认为 1。occurrence:返回第几次匹配的子串,默认为 1。match_parameter:'i':忽略大小写'c':区分大小写(默认)'n':使.匹配换行符'm':多行模式
subexpr:当正则表达式中包含括号分组时,指定返回第几个分组(0 表示整个匹配)。
如果你有具体的使用场景或需求,可以告诉我,我可以帮你写出更贴合的 SQL。