给定如下输入之一,我需要检查它是否与格式为"ABCD1234"的给定文本匹配:
- ABCD1### 匹配ABCD1943、ABCD1300,但不匹配ABCD2042或FOOB3075
- DCBA[98]### 匹配DCBA9012,DCBA8899但不DCBA6211 ###
- #1### 匹配ABCD1848和BARR1093
- (ABCD|福布|BARR)2### 匹配ABCD2999、FOOB2533、BARR2222
- ABCD1234,WXYZ9876 匹配仅ABCD1234,WXYZ9876 DCBA9##
- #,DCBA8### 与上面的 DCBA[98]### 匹配的内容相同
我写这个就像一个具有以下结构的函数:
create or replace function modifiedRegEx(pattern text, tester text)
RETURNS boolean
AS $re$
DECLARE
isMatch boolean;
BEGIN
isMatch := TRUE;
return isMatch;
END;
$re$ LANGUAGE 'plpgsql';
显然,上述内容每次都会返回TRUE
。我想知道是否有人可以建议一些可能有助于检查上述内容的字符串函数?即使在阅读了PostgreSQL字符串函数文档之后,我也很茫然。
谢谢。
你的答案在这里:http://www.postgresql.org/docs/9.0/static/functions-matching.html
这个返回 true:
SELECT 'DCBA9012' similar to 'DCBA[98]___';
或:
SELECT 'DCBA9012' ~ 'DCBA[98]...';