PostgreSQLの正規表現
正規表現は、java、.NET、PHP、Perl、さらにはPostgreSQLなどのプログラミング言語にとって非常に強力なツールです。
ここでは、PostgreSQLで正規表現を使用する方法を示すいくつかの基本的な例を記述します。
1)isdigit function –これは他のデータベースの組み込み関数であるため、PostgreSQLにはありません。
これは、許可された数値のみを検証するための非常に便利な関数です。 ただし、PostgreSQLで自分自身でisdigit関数を作成できます。
create or replace function isdigit(text) returns boolean as ' select $1 ~ ''^(-)?[0-9]+$'' as result ' language sql; --test function select isdigit('1') --return true select isdigit('A') --return false
2)isString function –この関数は、他のデータベースに組み込まれている関数であるため、PostgreSQLにもありません。
これは、文字列許可のみを検証するための非常に便利な関数です。 ただし、PostgreSQLでisString関数を作成することはできます。
create or replace function isString(text) returns boolean as ' select $1 ~ ''^(-)?[a-zA-Z]+$'' as result ' language sql; --test function select isString('1') --return false select isString('A') --return true
3)isIPAddress function –これは他のデータベースに組み込まれている関数ではないと思います。 この関数は、IPアドレスの許可を検証するために使用されます。
例A
--check ipaddress create or replace function isIPAddress(text) returns boolean as ' select $1 ~ ''^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'' as result ' language sql; --test function select isIPAddress('202.111.0.1') --return true select isIPAddress('202.ZZZ.0.A') --return false select isIPAddress('202.11199999999.1.100') --return true
例B
create or replace function isIPAddressStrict(text) returns boolean as ' select $1 ~ ''^[0-9]?[0-9]?[0-9]?\.[0-9]?[0-9]?[0-9]?\.[0-9]?[0-9]?[0-9]?\.[0-9]?[0-9]?[0-9]?$'' as result ' language sql; --test function select isIPAddressStrict('202.111.0.1') --return true select isIPAddressStrict('202.ZZZ.0.A') --return false select isIPAddressStrict('202.11199999999.1.100') --return false
うわー、印象的でしょ? 実際、正規表現は上記の単純な関数よりも強力です。 時間をかけて勉強する価値があります。 それについてもっと知りたい場合はここに行ってください
http://en.wikipedia.org/wiki/Regular_expression
よろしければ、あなたの例を私にも教えてください。 ありがとう