我在postgres函数中使用以下行:
read-line-into-buffer
但是当我尝试使用它时,我得到regexp_replace(input, '[^a-z0-9\-_]+', sep, 'gi');
。正则表达式在Ruby中运行良好,是否有理由在postgres中有所不同?
答案 0 :(得分:4)
一些正则表达式解析器将在中间使用短划线( - ),如果在你拥有它的范围之后,但其他人不会。我怀疑postgres
regexp解析器在后面的类中。在正则表达式中使用破折号的规范方法是从它开始,即将正则表达式更改为'[^-a-z0-9_]+'
,这可能使它通过解析器。然而,一些正则表达式解析器可能非常繁琐,也不接受它。
我没有postgres
进行测试,但我希望他们能够接受上面的正则表达式并正确处理。否则你必须找到他们手册的正则表达式部分并理解它的含义。
答案 1 :(得分:0)
对我来说,它可以将破折号(-)移至列表末尾
将[A-Za-z0-9-_.+=]
替换为[A-Za-z0-9_.+=-]
似乎可行
答案 2 :(得分:0)
我遇到了同样的问题
使用
\-
而不仅仅是
-
对我有用