Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Sql 正则表达式删除字符串中所有出现的多个字符_Sql_Regex_Postgresql_Pattern Matching - Fatal编程技术网

Sql 正则表达式删除字符串中所有出现的多个字符

Sql 正则表达式删除字符串中所有出现的多个字符,sql,regex,postgresql,pattern-matching,Sql,Regex,Postgresql,Pattern Matching,在我的PostgreSQL中,我想替换字符串中出现的所有字符(;) 我的问题是: update table_name set text = regexp_replace(text, '/[(;<>)]+/g', ''); updatetable_name set text=regexp_replace(text'/[(;)]+/g',''); 我想我的regexp是错的。有人能帮我吗?对于这个简单的案例,请使用更快的方法: UPDATE tbl SET text = transl

在我的PostgreSQL中,我想替换字符串中出现的所有字符
(;)

我的问题是:

update table_name set text = regexp_replace(text, '/[(;<>)]+/g', '');
updatetable_name set text=regexp_replace(text'/[(;)]+/g','');
我想我的regexp是错的。有人能帮我吗?

对于这个简单的案例,请使用更快的方法:

UPDATE tbl SET text = translate(text, '(;<>)', '');

这样可以避免(昂贵的)空更新。(
NULL
在这种特殊情况下会自动覆盖。)

Awesome。是的,这正是我想要实现的。非常感谢。实际上,OP的regex模式是正确的(它确实有/g标志),它应该在Postgres中写得有点不同。无论如何,关于
translate
@raina77ow的观点非常好:是的,只是正则表达式的语法问题。我在示例中添加了括号,似乎OP也希望替换这些括号。
regexp_replace(text, '[(;<>)]', '', 'g');
UPDATE tbl
SET    text =  translate(text, '(;<>)', '')
WHERE  text <> translate(text, '(;<>)', '');