Stackoverflow 中的基本正则表达式



给定如下输入之一,我需要检查它是否与格式为"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]...';

最新更新