On 8/23/07, Michael Glaesemann <grzm@seespotcode.net> wrote:
>
> On Aug 23, 2007, at 20:01 , Postgres User wrote:
>
> >>> Yes, I read the manual. I think I had a problem because of the
> >>> special chars (< / >) that I'm trying to search for... Still
> >>> looking
> >>> for the right syntax.
> >>
> >> Why don't you show us what you've tried and the errors you're
> >> getting? That way we can help you figure out what you're doing wrong
> >> rather than just give you an answer.
> >>
> >> Michael Glaesemann
> >
> > SELECT substring(data_field from '<name>(.)</name>')
> > FROM myTable
>
> Looks like you might want to brush up on regular expressions in
> general. Your expression will match a single character between the
> <name> tags. You might want to try something like .+ instead.
>
> Michael Glaesemann
You're right, that was a typo, I didn't copy and paste.
I found the problem, I was using 2 forward slashes instead of a
backslash + forward slash when pattern matching. The correct regex to
extract my substring:
substring(data_field from '<name>(.+)<\/name>')