Nic*_*ick 2 sql postgresql pattern-matching sql-like
我有一个包含资源路径的列,如下所示:
/apiv3/widgets/100
/apiv3/widgets/search
/apiv3/widgets/new
Run Code Online (Sandbox Code Playgroud)
我试图得到一个LIKE或REG_EX,只会匹配以数字结尾的字符串
我尝试了一些例如:
LIKE '\/apiv3\/widgets\/[0-9]%'
LIKE '\/apiv3\/widgets\/[^0-9]%'
Run Code Online (Sandbox Code Playgroud)
如何匹配仅以任意长度的数值结尾的路径?
Erw*_*ter 11
使用正则表达式匹配(~
).
对于以数字结尾的字符串:
...
WHERE value ~ '\d$'
Run Code Online (Sandbox Code Playgroud)
E'\d$'
会不正确的.这是不是一个转义字符串.
对于结尾的字符串只在最后的数字/
:
...
WHERE value ~ '/\d+$'
Run Code Online (Sandbox Code Playgroud)
+
..一个或多个原子
/
..字面/
快速测试:
SELECT x, x ~ '\d$' As one, x ~ '/\d+$' As two
FROM (
VALUES
('/apiv3/widgets/100')
,('/apiv3/widgets/search')
,('/apiv3/widgets/new')
,('/apiv3/widgets/added_test17')
) AS t(x);
x | one | two
-----------------------------+-----+-----
/apiv3/widgets/100 | t | t
/apiv3/widgets/search | f | f
/apiv3/widgets/new | f | f
/apiv3/widgets/added_test17 | t | f
Run Code Online (Sandbox Code Playgroud)