Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 理解查询中的postgresql正则表达式_Regex_Postgresql - Fatal编程技术网

Regex 理解查询中的postgresql正则表达式

Regex 理解查询中的postgresql正则表达式,regex,postgresql,Regex,Postgresql,我正在编写别人的代码,遇到了意想不到的行为,我不知道这意味着什么。我没有做太多正则表达式的东西 谁能告诉我这个查询返回了什么?谢谢你可以看到这个 具有三个参数的substring函数substring(模式中用于转义字符的字符串)提供了匹配SQL正则表达式模式的子字符串的提取。 与类似,指定的模式必须与整个数据字符串匹配,否则函数将失败并返回null。 要指示模式中成功返回的部分,模式必须包含两个转义字符,后跟双引号(“)。 返回与这些标记之间的模式部分匹配的文本 一些示例使用#“分隔返回字符串

我正在编写别人的代码,遇到了意想不到的行为,我不知道这意味着什么。我没有做太多正则表达式的东西

谁能告诉我这个查询返回了什么?谢谢你可以看到这个 具有三个参数的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)