考虑像下面的一个输入,我需要检查是否匹配提供的格式“ABCD1234”的文字,:基本正则表达式中的#1
- ABCD1 ###匹配ABCD1943,ABCD1300,但确实不匹配ABCD2042或FOOB3075
- DCBA [98] ###匹配DCBA9012,DCBA8899但不DCBA6211
- #### 1 ###匹配ABCD1848和BARR1093
- (ABCD | FOOB | BARR)2 ## #匹配ABCD2999,FOOB2533,BARR2222
- ABCD1234,WXYZ9876 m atches仅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字符串函数文档之后,我仍然无所适从。
谢谢。
只是为了确保 - 你要求翻译从你的“modifiedRegEx”到一个正常的正则表达式?我希望“DCBA [98] ###匹配DCBA4012,DCBA3899”是一个错字。我猜如果你用“[0-9] *”,“####”替换为“[A-Z] *”和“,”的“###” - 它会做你所问... – Vlad
是的,这是一个错字。不,我不想翻译成常规正则表达式,我希望函数在输入模式匹配输入测试时返回TRUE,否则返回false。 – warchinal