Re: Match 2 words and more - Mailing list pgsql-general

From David G. Johnston
Subject Re: Match 2 words and more
Date
Msg-id CAKFQuwYN=1+-2pP2EEWxUcARXgt3OcyYfz_9sEqg1uZmr=PQSg@mail.gmail.com
Whole thread Raw
In response to Match 2 words and more  (Shaozhong SHI <shishaozhong@gmail.com>)
List pgsql-general
On Sat, Nov 27, 2021 at 5:27 PM Shaozhong SHI <shishaozhong@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.

pgsql-general by date:

Previous
From: Guyren Howe
Date:
Subject: Re: Match 2 words and more
Next
From: Ron
Date:
Subject: Re: Match 2 words and more