如何用REGEXP_SUBSTR提取首、次斜杠间的文本?示例返回abc
使用REGEXP_SUBSTR截取第一个与第二个斜杠间的文本
没问题,这需求我熟,直接用REGEXP_SUBSTR配合正则捕获组就能搞定!
针对你给出的示例字符串/abc/required_string/2/,可以用下面的SQL语句直接提取出abc:
SELECT REGEXP_SUBSTR('/abc/required_string/2/', '/([^/]+)/', 1, 1, NULL, 1) AS extracted_text FROM dual;
拆解一下各参数的作用:
- 第一个参数:目标字符串,也就是你要处理的
/abc/required_string/2/ - 第二个参数
/([^/]+)/:正则表达式,核心是[^/]+——匹配任意非斜杠的字符,外层的括号是捕获组,用来标记我们要提取的内容;前后的/用来定位第一个和第二个斜杠的位置 - 第三个参数
1:从字符串的第1个字符开始搜索 - 第四个参数
1:匹配第1个符合正则模式的片段 - 第五个参数
NULL:使用默认的匹配规则(这里不需要特殊配置,比如不区分大小写之类的) - 第六个参数
1:返回第一个捕获组的内容,也就是我们用括号圈出来的[^/]+部分
测试一下其他场景
如果换个字符串比如/test-user-123/order/789/,用同样的语句会得到test-user-123,完全符合预期。
内容的提问来源于stack exchange,提问作者dreambigcoder
相关产品推荐
相关产品推荐

