正则表达式子串与' |'在模式中

时间:2014-12-13 14:57:27

标签: regex string postgresql escaping

我有一串名字|值对:

'clientName|img_0196.jpg||mime|||size|3195562||serverFileName|uplo/ad/548a5b35003bf.img_0196.jpg'

我试图通过以下方式提取clientName的值,即img_0196.jpg:

clientName := substring(eml from '%clientName.#"[^|]+#"%' for '#');

我尝试了很多模式(不同的转换' |'),但它们都会产生NULL或' clientName'。
非常感谢。

1 个答案:

答案 0 :(得分:0)

从我对文档的阅读中,你所拥有的应该是有用的,尽管它也不适合我(在9.3中)。

forsubstring版本遇到了很多问题,我只是不相信%_与正则表达式引擎的混合奇怪的#"解析。

不确定您是否知道,但是您可以删除for并获得纯POSIX正则表达式,subtring将返回整个匹配或第一个捕获paren(如果有)。所以要得到你想要的东西:

substring( eml from 'clientName\|([^|]*)')