正则表达式中的匹配数字(Oracle SQL)

时间:2015-12-15 19:32:54

标签: sql regex oracle

我有以下字符串:

str = '/house/0043214-123-Madison-Dr-Nashville-TN'

我需要捕获以下数字

0043214

当我尝试

regexp_substr(str, '[\/house\/]\d+')

我得到了

/0043214

如何摆脱正斜杠?

1 个答案:

答案 0 :(得分:1)

使用capturing group

REGEXP_SUBSTR( str, '/house/(\d+)', 1, 1, NULL, 1 )

但是,如果它总是成为字符串中的第一个数字,那么你可以这样做:

REGEXP_SUBSTR( str, '\d+' )

另外,[abc]会匹配abc中的任何一个字符。因此[\/house\/]与字符串/house/不匹配,但只与其中的一个字符匹配。如果删除方括号和不必要的转义字符,则匹配字符串。