PostgreSQL regex_replace逗号,单引号和双引号

时间:2020-02-28 23:50:11

标签: sql postgresql replace regexp-replace

我有一个包含双引号,单引号和逗号的字符串。我想使用regex_replace替换它们的所有出现。

尝试

REGEXP_REPLACE(translate (links, '"',''), '['''''',]'        , '') 

它代替了第一次出现的逗号而不是第二次出现的逗号。

'https://google.com/khjdbgksdngksd#/","https://google.com/khjdbgksdngksd#/","'

2 个答案:

答案 0 :(得分:1)

您为什么要混合TRANSLATE和REGEXP_REPLACE?只需选择一个并使用它,因为任何一个都可以做您想做的所有事情。

如果您希望REGEXP_REPLACE替换所有实例,则必须为其赋予'g'的第四个参数(标志参数)以表示'global',否则它将在第一次匹配和替换后停止

另外,为了保持理智,当所引用的东西带有单引号(您的单引号过多)时,我会使用美元报价。

使用TRANSLATE可能是一项更好的工作工具,但您的头衔特别是关于REGEXP_REPLACE的,所以:

REGEXP_REPLACE(links, $$[',"]$$, '', 'g');

答案 1 :(得分:0)

为什么不只使用install: cannot remove '/usr/local/lib/libhts.so.1.3.2': Permission denied Makefile:363: recipe for target 'install-so' failed

li@Desktop-590-p0xxx:~/scrna-subsets-master/bin/htslib$ make install
mkdir -p -m 755 /usr/local/bin /usr/local/include /usr/local/include/htslib /usr/local/lib /usr/local/share/man/man1 /usr/local/share/man/man5 /usr/local/lib/pkgconfig
if test -n ""; then mkdir -p -m 755 ; fi
install -p -m 644 libhts.so /usr/local/lib/libhts.so.1.3.2
install: cannot remove '/usr/local/lib/libhts.so.1.3.2': Permission denied
Makefile:363: recipe for target 'install-so' failed
make: *** [install-so] Error 1

或更简单地,使用replace()

select replace(replace(replace(links, '"', ''), '''', ''), ',', '')