PostgreSQL 半角英数字の正規表現

NO IMAGE

こんにちは、Mizutaniです。

PostgreSQLで正規表現ができることをネットで調り、さっそくトライ!
したのですが、検索の仕方が悪かったのか、日本語交じりだとうまくいきませんでした。
なので、基礎的な正規表現の例を紹介します。

ちなみにバージョンは PostgreSQL 8.4です。


◆正規表現はPostgreSQLで用意されているものを用います。

SELECT * FROM table_a WHERE id ~ ‘[0-9]+’;

これを応用します。

◆半角英数字も問題なくチェックできます。

SELECT * FROM table_a WHERE id ~ ‘[0-9a-zA-Z]*’;

◆ただし、このままだと日本語が混じった文(abcあd)は判断できなかったので修正。

SELECT * FROM table_a WHERE id ~ ‘^[0-9a-zA-Z]*$’;

これで半角英数字のチェックはできると思います。
意外と簡単にできますね。

◆ちなみに、
~ (チルダ)は必ずパターンの先頭に書きます。
先頭以外に配置してしまうとリテラルとして解釈されるので注意。
あと は行の終わりを意味します。

以上です。