好的,所以Imperial Agent已经获得了所有Galactic邮件服务器的访问权限,并为每个邮件服务器创建了Darth Vadar的邮件帐户......
共和国的Oracle专栏中维护了一个主分发列表,如下所示:
~To,Chewie,ChewBacca@wookie.net~;~Cc,Han Solo,Millenium@Falcon.com~;~Cc,Luke Skywalker,Luke@IamYourFather.co.uk~
我们的Imperial Agent需要帮助使用Oracle REGEXP_REPLACE将所有电子邮件帐户名称部分替换为Darth Vadar帐户Vadar @ ...所以最终结果将是:
~To,Chewie,Vadar@wookie.net~;~Cc,Han Solo,Vadar@Falcon.com~;~Cc,Luke Skywalker,Vadar@IamYourFather.co.uk~
这可以作为单一声明完成吗? 你会认为使用黑暗力量比这更容易。
答案 0 :(得分:1)
对于某些情况,可能过于简单,但对于您的示例,这可行:
regexp_replace(value, '[[:alnum:]\.]*@', 'Vadar@')
e.g:
select regexp_replace('~To,Chewie,ChewBacca@wookie.net~;~Cc,Han Solo,Millenium@Falcon.com~;~Cc,Luke Skywalker,Luke@IamYourFather.co.uk~',
'[[:alnum:].%_+-]*@', 'Vadar@')
from dual;
~To,Chewie,Vadar@wookie.net~;~Cc,Han Solo,Vadar@Falcon.com~;~Cc,Luke Skywalker,Vadar@IamYourFather.co.uk~
SQL Fiddle使用破折号和句点示例。