2016-07-26 13 views
0

次の正規表現を使用して、有効な住所として文字列を検証しようとしています。この正規表現を5桁に制限する

私が本当に気にかけているのは、数字で始まり、1から5までの数字で始まり、スペースがあり、次にテキストがあることです。

私が苦労しているのは、このRegexをPostgresでregexp_replaceと併用すると、 "111111111 james smith"のような入力として有効であるということです。

は私が

^[0-9]{1,5}\s\w.*$ 

そうでない場合は、文字列アンカーの5

SELECT regexp_replace('111111111 james smith', '^[ \t]+|[ \t]+$', '') ~* 
'\d{1,5}\b\s\w\*' as ValidStreet 

答えて

1

ます。また、スタートを使用する必要があります(^)と終わり($)正規表現の桁数を制限したいです文字列の一部と一致し、まだtrueを返します。

開始アンカーは文字列の先頭と一致すると言い、最後のアンカーは文字列の終わりに一致すると言います。したがって、両方を含めると「文字列全体を含む」。 あなたがそれらを含んでいないので、あなたはまだ文字列の真ん中で一致を得る(上の画像を参照)

+0

ありがとう、それはまさに私が必要としたものです! –