Регулярное выражение в PostgreSQL

Регулярное выражение в PostgreSQL

Регулярное выражение - это очень мощный инструмент для таких языков программирования, как java, .NET, PHP, Perl… или даже PostgreSQL.
Здесь я пишу несколько основных примеров, чтобы показать, как использовать регулярное выражение в PostgreSQL.

1)isdigit function - Эта функция отсутствует в PostgreSQL, так как это встроенная функция в других базах данных.
Это очень полезная функция для проверки разрешенных только номеров. Однако мы можем сами создать функцию isdigit в PostgreSQL.

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, так как это встроенная функция в других базах данных.
Это очень полезная функция для проверки разрешенных только строк. Однако мы можем сами создать функцию isString в PostgreSQL.

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-адреса.

Пример А

--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

Пример Б

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

Пожалуйста, поделитесь со мной своим примером, если вы не возражаете. Спасибо