如何从SQL select返回匹配的正则表达式?我try 使用REGEXP_EXTRACT
,但运气不佳(功能不可用).我所做的是:
SELECT column ~ '^stuff.*$'
FROM table;
但这给了我一个正确/错误的列表.我想知道每种情况下提取的是什么.
如何从SQL select返回匹配的正则表达式?我try 使用REGEXP_EXTRACT
,但运气不佳(功能不可用).我所做的是:
SELECT column ~ '^stuff.*$'
FROM table;
但这给了我一个正确/错误的列表.我想知道每种情况下提取的是什么.
如果您试图捕获由表达式生成的正则表达式匹配,那么substring
将起到以下作用:
select substring ('I have a dog', 'd[aeiou]g')
将返回任何匹配项,在本例中为"狗"
我认为你在上面try 的缺失环节是,你需要把你想要捕捉的表达式放在括号里.regexp_matches
在这种情况下可以使用(如果在想要捕获的表达式周围包含括号),但每次匹配都会返回一个文本array.如果是一个匹配,substring
就有点方便了.
回到你的例子,如果你试图返回stuff
,当且仅当它在一列的开头:
select substring (column, '^(stuff)')
或
select (regexp_matches (column, '^(stuff)'))[1]