电子邮件示例:ex@mpleEm@il@mymail.com
预期结果:ex@mpleEm@il
我该怎么做?
答案 0 :(得分:2)
使用substring(string from pattern):
select substring('ex@mpleEm@il@mymail.com' from '(.*)@');
substring
--------------
ex@mpleEm@il
(1 row)
答案 1 :(得分:2)
最简单的解决方案可能是使用a POSIX regular expression match:
select substring('ex@mpleEm@il@mymail.com' from '(.*)@');
这里有两个微妙的事情:
.*
尽可能匹配 ,这就是为什么它包含额外的@
s(比较select substring('ex@mpleEm@il@mymail.com' from '(.*?)@');
有一个"非贪婪的"修饰符)substring
函数将返回第一次捕获的内容,这就是为什么不包含<{1}} 的原因@
没有捕获括号)