【发布时间】:2021-12-04 17:47:19
【问题描述】:
我想从匹配的正则表达式中捕获最后一个单词。这是我的查询。
SELECT REGEXP_SUBSTR(
'The;quick;brown;fox;jumps;over;the;lazy;dog','^([^;]*;){5}([^;]*)') REF
FROM
DUAL
Desired result: over
Actual Result: The;quick;brown;fox;jumps;over
我可以做子正则表达式,但如果有数百万条记录,它会影响性能……
嵌套正则表达式
SELECT REGEXP_SUBSTR(REGEXP_SUBSTR(
'The;quick;brown;fox;jumps;over;the;lazy;dog',
'^([^;]*;){5}([^;]*)'),'[^;]*$') REF
FROM
DUAL
【问题讨论】:
-
@JvdV Oracle 不支持非捕获
(?:)组。您需要删除?:并获取第二个捕获组。 -
是的,我正在阅读您的答案。我猜你已经涵盖了它=)