[pgsql-jp: 34835] Re: 正規表現で4 桁の数字をチェック
noguchi @ edit.ne.jp
noguchi @ edit.ne.jp
2005年 2月 8日 (火) 16:42:06 JST
正規表現の書きかたですよね.
select '0123' ~ '^[0-9]{4}$'
ではないでしょうか.
ポイントは
・正規表現は「'」で囲む
・直前の表現が何文字というのを表すには,*や^ではなく{}で長さの範囲をは
さむ(4文字なら{4},2〜5文字といいたければ{2,5})
・岸上さんの表現では~の右側の文字が含まれれば一致と判断するので,例え
ば8桁の数字もtrueになる.「4文字の数字」に限定するには,先頭と末尾を示す
^と$をつけないといけない
といったところでしょうか.
正規表現については,Perlの解説書とかに詳しく載っていたと思います.
PostgreSQLの解説書に書いてあったかは確認していません...
野口尚志(Noguchi, Takashi)
On Tue, 08 Feb 2005 16:18:45 +0900
Yuko Kishiue <kishiue @ u-tech.co.jp> wrote:
> PostgreSQLで正規表現を使用したいのですがうまくいきません。
> マニュアルとにらめっこしているのですがなかなかうまくいきません。
> 4桁の数字で構成されている文字列ならTrueを返したいと思っています。
>
> select '0123' ~ [0-9]^4 >> trueが返る
> (もしくは select '0123' ~ [0-9]*4 )
>
> としたいのですが、
>
> 「ERROR: syntax error at or near "[" at character 17」
> と出てできません。
>
> おわかりの方がありましたら宜しくお願い致します。
> また、ここを見なさいといったご指摘でも結構です。
>
> 宜しくお願い致します。
>
> --
> Yuko Kishiue
> kishiue @ u-tech.co.jp
>
pgsql-jp メーリングリストの案内