On Sat, Nov 27, 2021 at 5:27 PM Shaozhong SHI <shishaozh...@gmail.com>
wrote:

> this is supposed to find those to have 2 words and more.
>
> select name FROM a_table where "STREET_NAME" ~ '^[[:alpha:]+
> ]+[:alpha:]+$';
>
> But, it finds only one word as well.
>
> It appears that regex is not robust.
>
> Can anyone shed light on this?
>
>
You put the space inside the first character class (the plus sign within
that class is also a literal plus, not a "one or more" indicator) thus
you've made the space itself optional.  Did you maybe mean to use ( )
parens instead of [ ]?

When asking regex questions it is usually more helpful to formulate them
like so:

SELECT 'this should match' ~ '<regex here>';

David J.

Reply via email to