如何在Teradata中使用regexp_instr,使搜索的起始位置从末尾开始?与INSTR不同,它不采用-1作为位置参数

6ie5vjzr  于 2023-02-10  发布在  其他
关注(0)|答案(1)|浏览(151)

如何在Teradata中使用regexp_instr,使搜索的起始位置从末尾开始?与INSTR不同,它不接受-1作为位置参数?我试图从字符串末尾获得模式的出现。与INSTR不同,它不接受-1作为位置参数。

yqkkidmi

yqkkidmi1#

正则表达式不是这样工作的,而是用$将模式锚定到字符串的末尾,所以如果你想让所有字符串都以XYZZY结尾,你的正则表达式就是XYZZY$。

EDITOP显示需要的是最后一个字母数字字符的位置。因此,使用regex查找一个字母数字,后跟不确定数量的非字母数字,然后是字符串的结尾。

使用最小公分母regexp函数,字母数字是[A-Za-z0-9],或者,如果我们记得在调用中打开“i”标志,我们可以将其缩短为[a-z0-9]。类似地,非字母数字是[^a-z0-9],并且它们的任何可能的数目是[^a-z0-9]*。最后,字符串的结尾是$。将所有这些放在一起,

Regexp_instr(mytextcolumn,'[a-z0-9][^a-z0-9]*$',1,1,0,'i')

零参数返回匹配项的第一个位置。

相关问题