Oracle 正则表达式 子匹配查询
下面是使用SQL正则表达式从文本中提取出1F的代码:
SELECT REGEXP_SUBSTR('B馆-1F-K101', '[^-]+', 1, 2) AS FLOOR FROM dual;
解释一下这个代码的含义:
REGEXP_SUBSTR
函数使用正则表达式从文本中提取匹配的子字符串。'B馆-1F-K101'
是要从中提取字符串的文本。[^-]+
是匹配不包含连字符(-)的所有字符的正则表达式。该表达式在第二个参数中使用,表示从第一个连字符到第二个连字符之间的所有字符。1
表示从文本的第一个字符开始搜索。2
表示上面正则表达式匹配的第2个子字符串,即1F。
使用上面的SQL语句,可以输出以下结果:
FLOOR
-----
1F
这个查询将从B馆-1F-K101中提取出1F并将其作为结果返回。