Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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_Substring - Fatal编程技术网

Regex postgresql正则表达式和子字符串

Regex postgresql正则表达式和子字符串,regex,postgresql,substring,Regex,Postgresql,Substring,我有一个正则表达式http\:\/\/domainname\.com\/\S{4},它应该可以捕获如下URL:http://domainname.com/key4在较长的文本中 我只想获取键并将其与postgres数据库中的表字段相匹配 在尝试了一些东西之后,我来到了这个查询(用于抓取密钥): 因此,我得到了每一行的/domainname.com。。。嗯,没有你看到的钥匙 我做错了什么 谁能告诉我{7}代表什么吗?这个{7}代表前一个模式的7倍。因此在本例中,在[和]之间使用不同的字符。i、 e

我有一个正则表达式
http\:\/\/domainname\.com\/\S{4}
,它应该可以捕获如下URL:
http://domainname.com/key4
在较长的文本中

我只想获取键并将其与postgres数据库中的表字段相匹配

在尝试了一些东西之后,我来到了这个查询(用于抓取密钥):

因此,我得到了每一行的
/domainname.com
。。。嗯,没有你看到的钥匙

我做错了什么


谁能告诉我
{7}
代表什么吗?

这个
{7}
代表前一个模式的7倍。因此在本例中,
[
]
之间使用不同的字符。i、 e.
[abc]{3}
匹配
aaa
cba
或任何其他组合

我相当肯定这不是你想要的。您可能正在寻找类似的内容:

SELECT substring('http://domainname.com/key4' from 'http://domainname\\.com/\\S{4}')
FROM actions

这可能就是您在这个特定案例中所寻找的

select substring(substring('long text [http://domainname.com/key4] more text',E'http\:\/\/domainname\.com\/\\S{4}'),E'\\S{4}$');
如果关键部分为四个字符长,则将提取关键部分。如果您可能也在寻找类似key456的东西,那么可以使用更通用的匹配项,例如

select substring(substring('long text [http://domainname.com/key467] more text',E'http\:\/\/domainname\.com\/key\\d+'),E'key\\d+$');

也许更合适

@helle:你能举个例子说明一下
infos
的样子吗?因为它应该与给定的表达式一起工作(与我提供的所有测试数据一起工作),infos包含一个JSON字符串。
select substring(substring('long text [http://domainname.com/key467] more text',E'http\:\/\/domainname\.com\/key\\d+'),E'key\\d+$');