正则表达式 – 句子中的最后一个单词:在SQL中(正则表达式可能吗?)

前端之家收集整理的这篇文章主要介绍了正则表达式 – 句子中的最后一个单词:在SQL中(正则表达式可能吗?)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在Oracle sql(10gR2)中完成此操作.但我想,我宁愿说清楚,任何好的,有效的算法都可以.

给定一行(或句子,包含一个或多个单词,英语),您将如何找到句子的最后一个单词?

这是我在sql中尝试过的.但是,我希望看到一种有效的方法.

select reverse(substr(reverse(&p_word_in),instr(reverse(&p_word_in),' ')
                         )
                  )
      from dual;

想法是反转字符串,找到第一个出现的空间,检索子字符串并反转字符串.它效率很高吗?是正则表达式吗?我在Oracle 10g R2上.但我不介意看到任何其他编程语言的尝试,如果需要,我不介意编写PL / sql函数.

更新:

Jeffery Kemp给出了一个很好的答案.这非常有效.

回答

SELECT SUBSTR(&sentence,INSTR(&sentence,' ',-1) + 1)
FROM dual

解决方法

我认为INSTR / SUBSTR更简单:

WITH q AS (SELECT 'abc def ghi' AS sentence FROM DUAL)
SELECT SUBSTR(sentence,INSTR(sentence,-1) + 1)
FROM q;

猜你在找的正则表达式相关文章