我想从plsql中包含多个字母的字符串中获取最后第二个单词。
例如:-
如果字符串是'John Smith A',我需要得到'Smith'作为输出
如果字符串是'John Smith and ',我需要得到'An'作为输出
我试过以下方法;它的正则表达式在正则表达式测试器中工作,但当涉及到oracle PLSQL时,它没有给出任何输出。
SELECT regexp_substr('John Smith A', '([a-zA-Z]{2,}[^a-zA-Z]*)(?!.*[a-zA-Z]{2,}[^a-zA-Z])') FROM dual
可以使用
SELECT regexp_substr('John Smith A', '([[:alpha:]]+)(s+[[:alpha:]])?$', 1, 1, NULL, 1)
参见regex演示。
模式匹配:
([[:alpha:]]+)
-第1组:一个或多个字母(s+[[:alpha:]])?
-一个可选的序列s+
-一个或多个空白[[:alpha:]]
-单个字母
$
-字符串 结束