正規表現(regular expression)を使うとWHERE節などでより詳細な条件指定ができます (参考:PostgreSQL 9.5.4文書 - 9.7.3. POSIX正規表現)。 正規表現の指定はチルダ(~)を使って行います。特殊な意味を持つパターン記述文字が以下の通りLIKEとは異なることに注意して下さい
文字 | 意味 |
---|---|
. | 任意の1文字 |
* | 直前パターンが0個以上(例:「.*」は任意の文字0個以上) |
【書式】大文字小文字の区別あり SELECT カラム名 FROM テーブル名 WHERE カラム名~'正規表現パターン' 【書式】大文字小文字の区別なし SELECT カラム名 FROM テーブル名 WHERE カラム名~*'正規表現パターン'
例:カラム値が「Actin 」で始まっているものを抽出する。 SELECT カラム名 FROM テーブル名 WHERE カラム名~'^Actin' 例:カラム値が「 Actin」で終わっているものを抽出する。 SELECT カラム名 FROM テーブル名 WHERE カラム名~'Actin$' 例:カラム値に「 Actin 」または「 Myosin 」を含むものを抽出する。 SELECT カラム名 FROM テーブル名 WHERE カラム名~'(Actin|Myosin)' 例:カラム値が「1」から「9」の数字1文字+英数字3文字であるものを抽出 SELECT カラム名 FROM テーブル名 WHERE カラム名~'[1-9][0-9A-Za-z]{3}' 例:カラム値が「abc」のいずれか1文字+任意の2文字であるものを抽出 SELECT カラム名 FROM テーブル名 WHERE カラム名~'[abc].{2}'