3

我将如何计算某个字符之后的字符。我是 Oracle 的新手,我学到了很多东西,但是我在这一点上很困惑。我找到了几个可以为您提供子字符串的函数,并且我找到了一个可以为您提供字符串长度的函数。我正在检查一个电子邮件地址 myemail@thedomain.com。我想检查“。”之后的长度。在电子邮件中。

SELECT email
FROM user_table
WHERE length(substr(email, /*what values*/, /*to put here*/))

我不知道是否真的可以找到最后一个'.'的位置。在电子邮件字符串中?

4

2 回答 2

3

我不确定我会使用substr. 你可以尝试这样的事情:

select length('abcd@efgh.123.4567') - instr('abcd@efgh.123.4567', '.', -1) from dual

使用instr(..,..,-1)从最后一个字符向后搜索来查找位置。

于 2012-06-11T20:23:51.207 回答
2

由于您正在进行检查,我建议您使用REGEXP_INSTR使用正则表达式验证格式。例如,我在这个网站上找到的电子邮件验证是REGEXP_INSTR(email, '\w+@\w+(\.\w+)+') > 0

我自己没有检查,但看起来还不错。

干杯。

于 2012-06-11T20:54:32.073 回答