Re: String Manipulation

  • From: Carel-Jan Engel <cjpengel.dbalert@xxxxxxxxx>
  • To: jkstill@xxxxxxxxx
  • Date: Fri, 18 May 2007 09:35:04 +0200

If the first occurrence of the delimiter is the position you want to go
to, take any character that is not the delimiter:


      * For a delimiter '.', we want any not-dot: ^.
      * We want that as many times as possible: [^.]*



  1* select regexp_substr('test1@#!$%.test2.com', '[^.]*') from dual
dbalert199.D10B.1.FOTDBA SQL> /
REGEXP_SUB
==========
test1@#!$%


HTH


Best regards,

Carel-Jan Engel

===
If you think education is expensive, try ignorance. (Derek Bok)
===


On Thu, 2007-05-17 at 16:34 -0700, Jared Still wrote:

> 
> 
> On 5/17/07, Jeremiah Wilton <jeremiah@xxxxxxxxxxx> wrote:
> 
>         A regex returning the first word from the address should do
>         it:
>         
>         SQL> select regexp_substr('foo.bar.baz','\w*') from dual;
>         
>         
> 
> 
> 16:32:27 SQL>l
>   1* select regexp_substr(' foo-1.bar.baz','[a-z|A-Z|0-9|-]*') from
> dual
> 16:32:28 SQL>/
> 
> REGEX
> -----
> foo-1
> 
> 1 row selected.
> 
> There's probably a metacharacter to shorten that regex, but I can't
> remember and too lazy to look. 
> 
> -- 
> Jared Still
> Certifiable Oracle DBA and Part Time Perl Evangelist



Other related posts: