我在postgres中有一个场景,我需要收集多组方括号之间的所有条目。
以下示例将是我希望捕获的内容:
SELECT (regexp_matches('Hello [World] How [Are] You','\[(.*?)\]'))
但这只是返回
{World}
忽略第二个[Are]部分。
在常规正则表达式中,这似乎有效,所以我不确定它为什么会在这里失败。
理想情况下,我想将结果作为csv文本字符串返回。 e.g。
World,Are
但我似乎无法找到正确的查询来执行此操作。
任何意见都表示赞赏。谢谢。
答案 0 :(得分:3)
你必须使用'g'标志
SELECT (regexp_matches('Hello [World] How [Are] You','\[(.*?)\]','g'))
“g”标志表示应该测试正则表达式 反对字符串中所有可能的匹配。