考慮像下面的一個輸入,我需要檢查是否匹配提供的格式「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