Regex 理解查询中的postgresql正则表达式
我正在编写别人的代码,遇到了意想不到的行为,我不知道这意味着什么。我没有做太多正则表达式的东西 谁能告诉我这个查询返回了什么?谢谢你可以看到这个 具有三个参数的substring函数substring(模式中用于转义字符的字符串)提供了匹配SQL正则表达式模式的子字符串的提取。 与类似,指定的模式必须与整个数据字符串匹配,否则函数将失败并返回null。 要指示模式中成功返回的部分,模式必须包含两个转义字符,后跟双引号(“)。 返回与这些标记之间的模式部分匹配的文本 一些示例使用#“分隔返回字符串:Regex 理解查询中的postgresql正则表达式,regex,postgresql,Regex,Postgresql,我正在编写别人的代码,遇到了意想不到的行为,我不知道这意味着什么。我没有做太多正则表达式的东西 谁能告诉我这个查询返回了什么?谢谢你可以看到这个 具有三个参数的substring函数substring(模式中用于转义字符的字符串)提供了匹配SQL正则表达式模式的子字符串的提取。 与类似,指定的模式必须与整个数据字符串匹配,否则函数将失败并返回null。 要指示模式中成功返回的部分,模式必须包含两个转义字符,后跟双引号(“)。 返回与这些标记之间的模式部分匹配的文本 一些示例使用#“分隔返回字符串
SELECT substring(fld_path || fld_filename FROM '#\"%#\".zip$' for '#') AS file
FROM tbl_files
我想你应该把图案中的\去掉
substring('foobar' from '%#"o_b#"%' for '#') oob
substring('foobar' from '#"o_b#"%' for '#') NULL
谢谢,这有助于理解它好,行为正如你所描述的
digoal=# select substring('abcdefg' from '#\"%#\"g%' for '#');
substring
-----------
(1 row)
digoal=# select substring('abcdefg' from '#"%#"g%' for '#');
substring
-----------
abcdef
(1 row)