[英]Does postgresql support lookbehind regexp?
如果是,請提供一個關於lookbehind或替代的示例。
我正在嘗試提取序列名稱而不是'
select table_name,
column_name,
regexp_replace(substring(column_default from '''.*(?='')'),'''','','g') as sequence
FROM information_schema.columns
最后我檢查了它在sql級別不支持它,但如果絕對必要,你可以使用plperl來解決限制。 (重復的regexing通常不屬於DB級別,但......)
在您的特定示例中,請考慮使用否定類: [^']
(根據需要將其轉義) 或非貪婪的通配符: .*?
。
除此之外,您需要手動創建序列,其名稱將始終為:
tablename_colname_seq
此外,如果您在應用中使用多個模式和搜索路徑,則以下兩個默認值具有不同的行為:FWIW:
nextval('foo'::regclass) -- find foo once
nextval('foo'::text) -- find foo each time
從9.6開始,它確實接受使用(?<=re)
這里的文檔的正面觀察。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.